ホームページ >ウェブフロントエンド >jsチュートリアル >Python で動的 JavaScript でレンダリングされたコンテンツをスクレイピングする方法

Python で動的 JavaScript でレンダリングされたコンテンツをスクレイピングする方法

DDD
DDDオリジナル
2024-12-22 09:58:04362ブラウズ

How to Scrape Dynamic JavaScript-Rendered Content in Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。