Python3 が JS によって動的に生成された HTML Web ページをキャプチャする方法の例

黄舟
リリース: 2018-05-18 15:51:35
オリジナル
4638 人が閲覧しました

この記事では主に、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/')
ログイン後にコピー

【例1】

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()
ログイン後にコピー

【例2】 】

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート