AI の3ステップ「識別」「予測」「実行」のうち、「識別」のような部分を実装。Raspian は pyOpenSSL がないと SSL 接続がうまくいかないぽかったのでインストール。
アクセスして取得した結果をそのまま使っていたが、クラスタ分けの部分で全然精度が上がらず(いい加減な結果しか出てこない)。とりあえず p タグに限定する、pdf は無視することで何とか使えそうな結果に。
ここでやっていること
- requests で WEB ページをにアクセス
- ユーザエージェントを指定
ブラウザからアクセスしたとみなすため - pdf は処理をスキップする
- HTML の抽出は BeautifulSoup を使う
- p タグを抽出
- 1秒以上の間隔を持たせるため、待機時間を挿入
utils.py
# 抜粋
import requests
import time
from bs4 import BeautifulSoup
def getPages(urls):
# UAの指定
ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
"AppleWebKit/537.36 (KHTML, like Gecko) " \
"Chrome/81.0.4044.129 Safari/537.36"
text = ""
for i in range(getnum):
if not urls[i].endswith('pdf'):
try:
s = requests.get(urls[i], headers={"User-Agent": ua})
except:
pass
soup = BeautifulSoup(s.content, 'html.parser')
p_tag_text = ""
# 全てのpタグを抽出
for j in soup.find_all("p"):
p_tag_text = p_tag_text + j.text + "\n"
text = text + p_tag_text
time.sleep(1)
return text