Python および WebDriver 拡張機能を使用して、Web ページ上でより多くのデータを自動的にスクロールして読み込む
はじめに:
Web 開発では、より多くのデータを読み込む必要がある状況に遭遇することがあります。たとえば、Web ページ上のすべてのコメントまたはニュース リストを取得したいとします。従来の方法では、Web ページを手動でプルダウンするか、[さらに読み込む] ボタンをクリックしてさらにデータを読み込む必要があります。ただし、Python と WebDriver 拡張機能を使用すると、Web ページを自動的にスクロールしてより多くのデータを読み込むことができ、作業効率が向上します。
手順:
ライブラリをインポートしてブラウザ ドライバーを設定
Python スクリプトでは、まず Selenium ライブラリをインポートし、ブラウザ ドライバーへのパスを設定する必要があります。 ChromeDriver を例に挙げると、次のコードを通じて Chrome ブラウザに接続できます。
from selenium import webdriver driver = webdriver.Chrome('/path/to/chromedriver')
Web ページを開く
WebDriver の get メソッドを使用して、必要な Web ページを開きます。たとえば、ニュース Web ページを開きます。
url = 'https://news.example.com' driver.get(url)
Web ページを自動的にスクロールする
さらに多くのデータを読み込むために、Web ページを自動的にスクロールする必要があります。 Webdriver のexecute_script メソッドを使用して JavaScript スクリプトをシミュレートします。この場合、window.scrollTo() メソッドを使用してスクロールを実装します: 上記のコードの
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
document.body.scrollHeight
ページの一番下までスクロールすることを意味します。
読み込みの完了を待機しています
Web ページをスクロールしてさらにデータを読み込んだ後、新しく読み込まれたデータを取得するためにページの読み込みが完了するまで待つ必要があります。 Webdriver の implicitly_wait メソッドを使用して待機時間を設定します。
driver.implicitly_wait(10) # 设置等待时间为10秒
Get data
読み込みが完了するのを待った後、Beautifulsoup ライブラリを使用して Web ページを解析し、必要なデータを抽出します。たとえば、次のコードを使用して、新しく読み込まれたコメントを取得できます。 上記のコードの
from bs4 import BeautifulSoup soup = BeautifulSoup(driver.page_source, 'html.parser') comments = soup.find_all('div', class_='comment')
comment
はコメントの CSS クラス名を表しており、特定のコメントに従って変更する必要があります。ウェブページの構造。
データの読み込みをループスクロールする
Web ページにまだアンロードされたデータがある場合は、すべてのデータが読み込まれるまで Web ページをループで複数回スクロールできます。以下にコード例を示します。
while True: driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") driver.implicitly_wait(10) soup = BeautifulSoup(driver.page_source, 'html.parser') comments = soup.find_all('div', class_='comment') if len(comments) >= 100: # 假设需要加载的评论数为100 break
上記のコードでは、読み込むコメント数が 100 であると仮定します。読み込まれるコメント数が 100 に達すると、ループが抜けます。
結論:
Python と WebDriver 拡張機能を使用すると、Web ページ上で自動的にスクロールしてより多くのデータを読み込む機能を簡単に実装できます。ブラウザを自動化し、適切なスクリプトとライブラリを使用することで、データ取得をより効率的に行うことができます。コメント、ニュースリスト、その他の Web データをクロールする場合でも、このアプローチにより時間と労力を大幅に節約できます。
この記事が、より多くのデータを読み込むための Web ページの自動スクロールの理解と実践に役立つことを願っています。
以上がPython および WebDriver 拡張機能を使用して、Web ページ上で自動的にスクロールし、より多くのデータを読み込みますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。