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 におけるその応用

推薦する

気候変動はクラウドコンピューティングの安定性を脅かしている

真夏に熱波が英国と他の欧州諸国を襲い、気温が40度に達したため、グーグルとオラクルの2つのデータセン...

タオバオのセラーからイベントマーケティングの方法を学び、短期間で最適なコミュニケーションを実現します

【ポイント】イベントマーケティングは、対象者が広く、突発性が強く、短期間で最大かつ最適な情報伝達効果...

ユーザーの検索行動とキーワード分析(パート3)

2 番目の記事では、ロングテールキーワードの方がコンバージョン率が高いことをようやく説明しました。し...

#618# V5Net: 20% オフ、香港/韓国サーバー、高速ネットワーク、月額 729 元から、2*E5-2630L/32g メモリ/1TSSD/10M 帯域幅

v5net(v5.net)は、特別な中間プロモーションを開始しました。今から6月19日まで、香港の荃...

Baidu の異常なランキング調整にどう対処するか?

以前は、百度ランキングは週に一度更新されていましたが、百度アルゴリズムの継続的な調整により、百度ラン...

セールストークを通じて内部リンク構築について語る

この記事では、電話セールスの言語による内部リンク構築の思考ガイダンスについて説明します。誰もが、製品...

優れたウェブマスターツールの推奨事項: Baidu 外部リンクツール

ウェブサイト上の外部リンクの数は、常に重要な SEO 最適化指標となっています。以前は、ウェブサイト...

目次 (1)

目次 (1)ユーザー中心のシステム設計の基礎出版社からのコメント 本書に対する評価 翻訳者による序文...

タオバオの売り手は新しい本を出版できないと言う:Tmallは肉を食べ、スープを飲む

同じ新刊本、Tmallの売り手は販売できるが、私はできないITタイムズ 楊新傑朝、蒸し器から取り出し...

gcorelabs、中国語ページを追加、サーバー: ロシア/韓国/ルクセンブルク/オランダ/米国/シンガポール/ブラジル/日本/トルコ/オーストラリア/イスラエル

数日前、gcorelabs から、ウェブサイトのホスティング事業に中国語翻訳ページが追加されたという...

海外メディア:IDCはクラウドインフラサービス支出が2022年に900億ドルに達すると予測

調査会社カナリスによると、2021年第4四半期のクラウドインフラサービス支出では、アマゾンウェブサー...

Pacificrack: 388 台の限定プロモーション、年間 10.88 ドル、888M メモリ/1 コア/18g SSD/2T データ転送

Hostcat は、QN データセンターが所有するブランドである Pacificrack から最新の...

キーワード分析: Baidu の需要グラフを調べてキーワードをマイニングする

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますキーワード...

W3SO Webmaster Network にランキングがないことについてどう思いますか?

W3SO Webmaster Network、筆者がこのサイトに注目しているのは、他の理由ではなく、...

SaaS アクセラレーションはパブリック クラウドの転換点となるでしょうか?

[[401146]] 2021 年の初めに、クラウド コンピューティングに関する次のようなトレンドを...