\

PythonでWebスクレイピングを行う際、一般的にはrequestsBeautifulSoupの組み合わせがよく使われます。しかし、この方法ではJavaScriptで動的に生成されるWebページの情報を取得することができません。

そこで、JavaScriptを実行した後のHTMLを取得するために、Selenium WebDriverrequests-htmlといったツールが利用されます。

Selenium WebDriverはブラウザを操作することで、ブラウザと同じ表示内容を取得できます。一方、requests-htmlは内部でpyppeteerを利用し、ヘッドレスブラウザ(インターフェースなしのブラウザ)を使うことでブラウザの表示内容を取得できます。

以下に、requests-htmlを用いてJavaScriptが実行された後のHTMLから情報を取得するPythonコードの例を示します。

from requests_html import HTMLSession

url = "https://search.yahoo.co.jp/realtime"  # セッション開始
session = HTMLSession()
r = session.get(url)

# ブラウザエンジンでHTMLを生成させる
r.html.render()

# スクレイピング
ranking_rows = r.html.find("div.lst.cf")
ranking_list = []
if ranking_rows:  # 1〜5位だけを取得
    ranking_top5 = ranking_rows[0].find("p.que_3")
    for item in ranking_top5:
        ranking_list.append(item.text[2:])
print(ranking_list)

このコードは、Yahoo!リアルタイム検索から、1〜5位までをスクレイピングで取得します。

以上のように、PythonとJavaScriptの連携により、より高度なWebスクレイピングが可能となります。これにより、PythonのWebスクレイピングの可能性がさらに広がります。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です