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

推薦する

imidc: 「南アフリカ CN2 回線」VPS が 40% オフ、月額 9 ドル、KVM/512M メモリ/20g SSD/500g トラフィック

imidc の南アフリカ データ センターの南アフリカ VPS は、労働者の日を祝って 40% 割引...

Ramnode - サイト全体の60%割引コード/KVMはWindowsで使用可能

Ramnode の最高割引が再び登場しました。60 % オフの割引コード: SRSLY40 。この割...

「Love Is Not Blind」のWeiboマーケティングの成功について語る

近年、Weiboマーケティングは企業によって活用されており、「Love Is Not Blind」は...

re:Invent 2018 の最新リリース (パート 2)

[[252760]] re:Invent 2018は成功裏に終了しました皆さんもすでに生み出された情...

タレントの馬東がIT業界に転向:映像業界は制作と放送の分離を推進

故人となったトークショーの巨匠、馬冀氏の一人息子である馬東氏は、14年以上勤めたテレビ業界を離れる選...

weloveservers-50% オフ/Windows VPS/30% オフ Linux KVM/48 時間有効

weloveservers は KVM をインストールし、Windows VPS に接続しました。デ...

cmivps: 「618 イベント」、香港無制限トラフィック VPS、30% 割引、100M 帯域幅、CMI ライン

cmivps の 618 プロモーション: 香港 CMI ラインの VPS、年間支払いで 30% オ...

社内SEOトレーニングプラン

5月19日、筆者は「社内SEO研修についてお話しましょう」というタイトルの記事を書きました。この記事...

2020年の中国電子商取引市場の9つの主要トレンド予測

COVID-19パンデミックの影響により、オンライン電子商取引業界は急速に発展しました。コミュニティ...

Baiduは単なるツールであり、ユーザーに近づくことがSEOの究極の目標です

多くのウェブマスターは、毎日百度のアルゴリズムを研究しています。実は、検索エンジンはユーザーに役立つ...

テンセントクラウドが初めてコンピューティングパワー製品マトリックスを発表、自社開発戦略を加速し、ソフトウェアとハ​​ードウェアの連携を推進

9月11日、2020テンセントグローバルデジタルエコシステムカンファレンス高速インテリジェントコンピ...

マシュー効果が現れ始める IDC 2019 政府クラウド サービス プロバイダー市場レポートがリリースされました

最近、有名な分析機関IDCが2019年中国政府クラウドサーバーオペレーター市場シェアレポートを発表し...

SEO最適化にはコンテンツマーケティングが必要

Baidu のアルゴリズムルールが変更された後、ユーザーエクスペリエンスに重点が置かれたため、著者の...

共同購入サイトは多数消滅、テイクアウトや予約サービスもまだ試験段階

ケータリング O2O 起業には現実的な対応が求められます。最近、私はチームと協力して長沙でオフライン...