PythonのWebクローラー--Pyppeteer Pyppeteer

Pyppeteer

pyppeteerを使用して基本モジュール

入門

セレンは面倒がある場合に、使用されているなどのクロム、Firefoxの、などのブラウザでは、良好な相関関係がインストールされた、構成環境に関連して、対応するドライバをダウンロードするために、公式ウェブサイトに行かなければならないが、最も重要なことにも対応してインストールする必要がありますPythonのセレンライブラリは本当に、その後、別の大規模な展開場合の対処環境の問題のいくつかを設定することは非常に簡単ではありませんも頭痛の種です。そして、このセクションでは、Pyppeteerと呼ばれる別の同様の選択肢を、ご紹介します。

Pyppeteerプロフィール

このセクションがPyppeteerと呼ばれるモジュールではなく、人形遣いを記述することに注意してください。人形遣いは、GoogleのNode.jsの開発に基づいたツールであり、それ私たちはJavaScriptを介して、Chromeブラウザを制御できる操作のいくつかと、もちろん、また、ウェブクローラとして使用すること、そのAPIは非常に強力な、非常に健全です。Pyppeteerそれは何ですか?これは、実際には実現の人形遣いのPythonのバージョンですが、彼は、Googleによって開発されていない、日本のエンジニアからの非公式版は人形遣いの機能のいくつかに基づいて開発されています。

Pyppetterではその背後にある事実にも何らかのアクションを実行する際に同様のChromeブラウザクロムブラウザのページレンダリングを持って、最初のChromeとクロムのブラウザの下に起源を述べました。

  Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。二者基于相同的源代码构建,Chrome 所有的新功能都会先在 Chromium 上实现,待验证稳定后才会移植,因此 Chromium 的版本更新频率更高,也会包含很多新的功能,但作为一款独立的浏览器,Chromium 的用户群体要小众得多。两款浏览器“同根同源”,它们有着同样的 Logo,但配色不同,Chrome 由蓝红绿黄四种颜色组成,而 Chromium 由不同深度的蓝色构成。

Pyppeteerは、実行するクロムブラウザに依存しています。そうPyppeteer後で、我々はそれらの退屈な環境設定やその他の問題を回避することができます。クロムブラウザがインストールされていない、あなたが初めて実行する場合は、プログラムが自動的にインストールおよび設定するために私たちを助けるだろう、それは退屈な作業環境の設定を排除します。またPyppeteerは、Pythonは非同期達成の新機能に基づいているので、その実行のいくつかはまた、非同期操作をサポートし、効率相対セレンも増加しています。

環境インストール

  • ようPyppeteerので、Pythonの非同期メカニズムを使用してPythonのバージョンの運用要件3.5以上
  • pyppeteerをインストールするPIP

クイックスタート

 

-クロールhttp://quotes.toscrape.com/js/  ページ全体のデータを

輸入asyncio
 から pyppeteerの輸入打ち上げ
 から lxmlのインポートetree 
 
非同期デフメイン():
ブラウザが = 打ち上げ()待って
ページを = 待つbrowser.newPage()
待つpage.goto(' http://quotes.toscrape.com/js/ ' 
page_text = page.content()待つ
ツリー = etree.HTML(page_text)
div_list = tree.xpath(' // divの[クラス@ = "引用"] ' プリント(LEN(div_listは)) 
)(browser.close を待ちます
 
asyncio.get_event_loop()。run_until_complete(メイン())
pyppeteer インポート起動
 インポートASYNCIO
 から lxmlのインポートetreeの

オブジェクトブラウザ(Googleのベータ版)インスタンス 
非同期DEFのメインを():
    ブロは = のawait起動()
    新しい空白のページを作成し 
    ます= bro.newPage()
    (page.gotoを" http://quotes.toscrape.com/js/ " 

    #は、ページデータを取得し、現在表示されているページのソース 
    page_text = インクルードを待つPage.Content()

    の戻りpage_text 

DEF :パース(タスク)
    page_text = task.result()
    ツリー= etree.HTML(page_text)
    div_list = tree.xpath(' // divの[クラス@ = "引用"] ' のための divのdiv_list:
        コンテンツ = div.xpath(' ./span [1] /テキスト()' プリント(コンテンツ)

C = main()の
タスク = asyncio.ensure_future(C)
task.add_done_callback(パース)
ループ = asyncio.get_event_loop()
loop.run_until_complete(C)
バインディングコルーチン

 

 説明:

  ブラウザの起動方法は、新しいオブジェクトを作成し、ブラウザに割り当てられ、その後、NEWPAGE方法は、新しいブラウザタブに相当します呼び出し、同時に新しいページオブジェクトを作成しました。そして、Pageオブジェクトは、ブラウザがブラウザにロードされた該当ページにジャンプして、コンテンツのロードが完了した後にメソッドを呼び出し、現在のブラウザのページのソースコードに戻るには、後藤メソッドはこのURL入力に相当します呼び出します。さらに、我々はpyqueryと同じ決意を行っそこで、我々は、JavaScriptのレンダリング結果を得ることができます。このプロセスでは、我々は、同じ効果のセレンを達成するための煩雑な手順を排除し、ブラウザがドライブに設定されていない、Chromeブラウザを設定していなかったが、また、非同期のグラブを達成するために。

 

詳細な利用状況

  • ブラウザを開き
  • あなたは、関連するパラメータが導入された、起動メソッドを呼び出すことができます。
    • ignoreHTTPSErrors(ブール値):あなたはHTTPSエラーを無視しますか、デフォルト値はFalseです。
    • ヘッドレス(ブール値):このパラメータがTrueのデベロッパーツールならば、ヘッドレスモードが有効になっている、それは何のインタフェースモードではありません、そしてパラメータは、デフォルトでは何のインタフェースモードを有効にされていないこと、Falseにそうでない場合はTrueに設定されます。
    • executablePath(STR):デフォルトクロムを指定する必要がない場合は、実行可能ファイルへのパスは、その後、あなたは、既存のクロムまたはクロムを指定することができます。
    • 引数(リスト[STR]):実装のプロセスでは、追加のパラメータを渡すことができます。
    • デベロッパーツール(ブール値):自動的に各ページのためのツールのデバッグをオンにするかどうか、既定値はFalseです。このパラメータがTrueに設定されている場合は、ヘッドレスパラメータは無効となり、Falseに強制されます。
  • 、記事がイライラプロンプトが表示され、あなたがたはそれをシャット「クローム制御されている自動テスト・ソフトウェア」:プロンプト記事をオフにしますか?次のように我々は引数のパラメータを使用して、操作を無効にする必要があり、この時間は次のとおりです。
    • browser = await launch(headless=False, args=['--disable-infobars']) 

 

pyppeteerを使用して基本モジュール

入門

セレンは面倒がある場合に、使用されているなどのクロム、Firefoxの、などのブラウザでは、良好な相関関係がインストールされた、構成環境に関連して、対応するドライバをダウンロードするために、公式ウェブサイトに行かなければならないが、最も重要なことにも対応してインストールする必要がありますPythonのセレンライブラリは本当に、その後、別の大規模な展開場合の対処環境の問題のいくつかを設定することは非常に簡単ではありませんも頭痛の種です。そして、このセクションでは、Pyppeteerと呼ばれる別の同様の選択肢を、ご紹介します。

Pyppeteerプロフィール

このセクションがPyppeteerと呼ばれるモジュールではなく、人形遣いを記述することに注意してください。人形遣いは、GoogleのNode.jsの開発に基づいたツールであり、それ私たちはJavaScriptを介して、Chromeブラウザを制御できる操作のいくつかと、もちろん、また、ウェブクローラとして使用すること、そのAPIは非常に強力な、非常に健全です。Pyppeteerそれは何ですか?これは、実際には実現の人形遣いのPythonのバージョンですが、彼は、Googleによって開発されていない、日本のエンジニアからの非公式版は人形遣いの機能のいくつかに基づいて開発されています。

Pyppetterではその背後にある事実にも何らかのアクションを実行する際に同様のChromeブラウザクロムブラウザのページレンダリングを持って、最初のChromeとクロムのブラウザの下に起源を述べました。

  Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。二者基于相同的源代码构建,Chrome 所有的新功能都会先在 Chromium 上实现,待验证稳定后才会移植,因此 Chromium 的版本更新频率更高,也会包含很多新的功能,但作为一款独立的浏览器,Chromium 的用户群体要小众得多。两款浏览器“同根同源”,它们有着同样的 Logo,但配色不同,Chrome 由蓝红绿黄四种颜色组成,而 Chromium 由不同深度的蓝色构成。

Pyppeteerは、実行するクロムブラウザに依存しています。そうPyppeteer後で、我々はそれらの退屈な環境設定やその他の問題を回避することができます。クロムブラウザがインストールされていない、あなたが初めて実行する場合は、プログラムが自動的にインストールおよび設定するために私たちを助けるだろう、それは退屈な作業環境の設定を排除します。またPyppeteerは、Pythonは非同期達成の新機能に基づいているので、その実行のいくつかはまた、非同期操作をサポートし、効率相対セレンも増加しています。

環境インストール

  • ようPyppeteerので、Pythonの非同期メカニズムを使用してPythonのバージョンの運用要件3.5以上
  • pyppeteerをインストールするPIP

クイックスタート

 

-クロールhttp://quotes.toscrape.com/js/  ページ全体のデータを

輸入asyncio
 から pyppeteerの輸入打ち上げ
 から lxmlのインポートetree 
 
非同期デフメイン():
ブラウザが = 打ち上げ()待って
ページを = 待つbrowser.newPage()
待つpage.goto(' http://quotes.toscrape.com/js/ ' 
page_text = page.content()待つ
ツリー = etree.HTML(page_text)
div_list = tree.xpath(' // divの[クラス@ = "引用"] ' プリント(LEN(div_listは)) 
)(browser.close を待ちます
 
asyncio.get_event_loop()。run_until_complete(メイン())

おすすめ

転載: www.cnblogs.com/bilx/p/11572838.html