ホームページ >ウェブフロントエンド >jsチュートリアル >Python で動的 JavaScript でレンダリングされたコンテンツをスクレイピングする方法
Python で urllib2.urlopen(request) のような静的メソッドを使用する場合、Web ページから動的コンテンツをスクレイピングすると課題が生じる可能性があります。このようなコンテンツは、多くの場合、ページ内に埋め込まれた JavaScript によって生成および実行されます。
この問題に取り組む 1 つのアプローチは、Web ドライバーとして Phantom JS を備えた Selenium フレームワークを活用することです。 Phantom JS がインストールされていること、およびそのバイナリが現在のパスで利用可能であることを確認してください。
説明する例を次に示します。
import requests from bs4 import BeautifulSoup response = requests.get(my_url) soup = BeautifulSoup(response.text) soup.find(id="intro-text") # Result: <p>
このコードは、JavaScript サポートなしでページを取得します。 JS サポートを使用してスクレイピングするには、Selenium:
from selenium import webdriver driver = webdriver.PhantomJS() driver.get(my_url) p_element = driver.find_element_by_id(id_='intro-text') print(p_element.text) # Result: 'Yay! Supports javascript'
を使用します。または、dryscrape:
import dryscrape from bs4 import BeautifulSoup session = dryscrape.Session() session.visit(my_url) response = session.body() soup = BeautifulSoup(response) soup.find(id="intro-text") # Result: <p>など、JavaScript 駆動の Web サイトのスクレイピング用に特別に設計された Python ライブラリを利用することもできます。
以上がPython で動的 JavaScript でレンダリングされたコンテンツをスクレイピングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。