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