この記事では主に、JavaScript によって動的に生成された HTML Web ページをキャプチャするための Python3 の機能を紹介し、JavaScript によって動的に生成された HTML Web ページ要素をキャプチャするための Python3 の関連操作テクニックを、例と組み合わせて分析します。この記事の例では、JavaScript によって動的に生成された HTML Web ページを取得する機能を Python3 で実装する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
urllib を使用して Web ページをクロールすると、Web ページの静的ソース ファイルを読み取ることのみができますが、JavaScript によって生成されたコンテンツをキャプチャすることはできません。
その理由は、urllib が即座にクロールし、JavaScript の読み込み遅延を待たないため、ページ内の JavaScript によって生成されたコンテンツを urllib で読み取ることができないためです。
JavaScriptで生成されたコンテンツを読むことは本当に不可能ですか?いいえ!
ここでは Python ライブラリ: selenium を紹介します。この記事で使用されているバージョンは 2.44.0 です
最初にインストールしてください:
pip install -U selenium
以下はその使用法を示す 3 つの例です:
[例 0]Firefoxブラウザを開く
指定されたURLアドレスのページをロードするfrom selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.baidu.com/')
Firefoxブラウザを開く
Baiduホームページをロードする「seleniumhq」を検索する
ブラウザを閉じる
from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get('http://www.baidu.com') assert '百度' in browser.title elem = browser.find_element_by_name('p') # Find the search box elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键 browser.quit()
Selenium WebDriver はネットワーク プログラムのテストによく使用されます。 以下は Python 標準ライブラリのunittestを使用した例です:
import unittest class BaiduTestCase(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() self.addCleanup(self.browser.quit) def testPageTitle(self): self.browser.get('http://www.baidu.com') self.assertIn('百度', self.browser.title) if __name__ == '__main__': unittest.main(verbosity=2)
以上がPython3 が JS によって動的に生成された HTML Web ページをキャプチャする方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。