Selenium+PhantomJS+Xpath で Web ページの JS コンテンツをクロールする

Selenium+PhantomJS+Xpath で Web ページの JS コンテンツをクロールする

以前、クローラー プロキシ Web サイトをクロールしたところ、ポートに対して何らかの処理が行われており<script>document.write((2773^seal)+837);</script> 。こういう変更を一つやるだけでも頭を悩ませます。最も馬鹿げた方法で実現できるのですが、面倒すぎるし、コード量も膨大です。クレーンを操作してカードを掴むような感じです。最後に、少し遅いですが簡単に取得できる Selenium メソッドを考えました。

インストール

リナックス

sudo pip install seleniumsudo apt-get install PhantomJS

ウィンドウズ

  • Selenium のダウンロード アドレス: https://pypi.python.org/pypi/selenium#downloads
  • PhantomJS ダウンロードアドレス

原理

セレンについて

Selenium は、複数のプラットフォーム上で複数のブラウザを操作し、ブラウザの実行、ページへのアクセス、ボタンのクリック、フォームの送信、ブラウザ ウィンドウの調整、右クリックやドラッグ アンド ドロップの操作、ドロップダウン ボックスやダイアログ ボックスの処理など、さまざまなアクションを実行できる Web 自動テスト ツールです。QA 自動テストに不可欠なツールです。
クロール時にこれを選択する主な理由は、Selenium はページをレンダリングしページ内で JS を実行しボタンをクリックしたりフォームを送信したり、その他の操作を実行できるためです。
しかし、Selenium はページをレンダリングできるため、requests+BeautifulSoup よりも遅くなります。

PhantomJsについて

PhantomJs は、レンダリング エンジン (QtWebkit) と JS エンジン (JavascriptCore) を備えた、ページのないブラウザーと見ることができます。 PhantomJs には、DOM レンダリング、JS 実行、ネットワーク アクセス、Web ページのスクリーンショットなど、複数の機能があります。

PhantomJS は、主に PhantomJS のサイレント モード (ブラウザーを開かずにバックグラウンドで実行される) の理由で、Chromedriver や Firefox の代わりに使用されます。

クロールの例

小さなテスト - zhidaow.com タイトルをクロール

まずは簡単な例を見てみましょう。以前は、このようなコンテンツは一般的にrequests+BeautifulSoupまたはScrapyを使用して処理されていました。

 from selenium import webdriverbrowser = webdriver.PhantomJS('D:\phantomjs.exe') # ブラウザーの初期化。Win では phantomjs パスを設定する必要があり、Linux では空白のままにできます。url = ' # アクセス パスを設定します。browser.get(url) # Web ページを開きます。title = browser.find_elements_by_xpath('//h2') # xpath を使用して要素を取得します。for t in title: # 出力をトラバースします。print t.text # テキストを出力します。print t.get_attribute('class') # 属性値を出力します。browser.quit() # ブラウザーを閉じます。例外が発生した場合、タスクブラウザでPhantomJSを閉じることを忘れないでください。複数のPhantomJSが実行され、コンピュータのパフォーマンスに影響を与えるためです。 

元のタイトル: Selenium+PhantomJS+Xpath で Web ページの JS コンテンツをクロールする

キーワード: JS

<<:  2015 Google サンフランシスコ旅行記

>>:  ETag の概要と SEO におけるその応用

推薦する

PinduoduoはTaobaoトラフィックの上流になりつつある

私のような老人にとって、 Pinduoduo を理解するのはまだ少し難しいですが、業界では、Alib...

ウェブサイトに対する Google の信頼を高める 5 つの方法

Google は昨年 2 月に最初のパンダ アップデートを開始しました。当時、多くの Web サイト...

クラウドへの移行と変革の正しい方法

「クラウドへの移行は言うほど簡単ではない」現在、企業がクラウドに移行することはコンセンサスとなってお...

dmit - 高速香港 VPS、大規模トラフィック、固定および動的 IP、大規模帯域幅、月額料金は 39 ドルから

新興業者のdmit.ioは現在、香港VPSを主な事業として運営している。公式計画によると、将来的には...

最初のビットコイン詐欺事件が発覚、被害者は4日間で9万元を失う

この事例を紹介する前に、まず基本的な情報をお伝えします。ビットコインとは何でしょうか?簡単に言えば、...

クラウド移行戦略のベストプラクティスを実装する方法

クラウド コンピューティング テクノロジーは、組織にオンデマンドのテクノロジー リソースを提供するこ...

クラウド コンピューティング サービスが ERP を近代化する方法

クラウド コンピューティング テクノロジーは、従来の ERP アプローチと比較して、セキュリティと可...

SEO実践日記: キーワードの3Wインデックスを突破する方法

私は長い間 SEO 業界に携わってきたわけではないので、SEO に関する理解は特に深いわけではありま...

クラウドネイティブ時代の機会と課題: DevOps で打開する方法

クラウドネイティブ時代において、国内外の多くのクラウドベンダーが強力な技術的配当をリリースしています...

クラウド ネイティブとエッジ コンピューティングが出会うと、どのような火花が散るでしょうか?

Kubernetes がコンテナ オーケストレーションとスケジューリングの事実上の標準となったため、...

クラウド ERP は止められない: Oracle NetSuite の成功を解読する

[オリジナル記事は51CTO.comより] OracleがNetSuiteを93億ドルで買収してから...

パブリッククラウドからソフトウェア定義データセンターまで、マイクロソフトがハイブリッドクラウド攻勢を開始

ソフトウェア定義データセンターの分野では、VMware は近年最大のソフトウェア サプライヤーとなっ...

ワーナークラウド:米国/香港/シンガポール、CN2クラウドサーバーが40元から、帯域幅が1倍(トラフィック無制限)、10G DDoS防御

Warner Cloudは現在、期間限定のフラッシュセールとCN2クラウドサーバーの特別プロモーショ...

cPanel 初心者向けのイラスト付きチュートリアル。5 分で cPanel を使用して Web サイトを構築する方法を学びます。

cPanel チュートリアル、HostCat.com は、Web サイト構築の分野に参入したばかりの...

モバイル検索が役に立たないかどうかは、製品の定義によって決まる

モバイル検索製品の将来については、人によって位置づけが異なります。検索製品自体がエコシステムであると...