Python で動的ページ (JavaScript) をスクレイピングする方法
Web スクレイピングを扱う場合、静的 HTML ページは比較的簡単に処理できます。ただし、ターゲット ページのコンテンツが JavaScript によって動的に生成される場合に問題が発生します。
Python では、ページ コンテンツに urllib2.urlopen(request) を使用すると、HTML に表示されている内容のみが読み取られ、JavaScript が含まれない場合があります。 -生成された要素。この動的コンテンツにアクセスするには、Python コード内でブラウザ環境をシミュレートする必要があります。
PhantomJS での Selenium の使用
Selenium は、Web ブラウザとの対話を可能にする Python ライブラリです。 。 PhantomJS は、グラフィカル ユーザー インターフェイスなしで実行されるヘッドレス ブラウザーです。これらを組み合わせることで、動的コンテンツをスクレイピングするための適切な方法が提供されます。
import requests from selenium import webdriver # Ensure PhantomJS is installed and in the current path print(webdriver.PhantomJS().version) # Print version for confirmation url = 'my_url' # Create a PhantomJS webdriver driver = webdriver.PhantomJS() driver.get(url) # Retrieve the element with id "intro-text" p_element = driver.find_element_by_id('intro-text') # Print the text content of the element print(p_element.text)
Dryscape の使用
Dryscape は、ヘッドレス JavaScript スクレイピング用に特別に設計されたもう 1 つの Python ライブラリです。
import dryscrape from bs4 import BeautifulSoup url = 'my_url' # Create a Dryscrape session session = dryscrape.Session() session.visit(url) # Get the page body response = session.body() soup = BeautifulSoup(response) # Find the element with id "intro-text" soup.find(id='intro-text')
以上がPython を使用して JavaScript で動的 Web ページをスクレイピングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。