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

推薦する

強力な思考のポスト SEO 時代に私たちはどこへ向かうのでしょうか?

これまで、SEOは中国で長年にわたり発展してきました。初期の盛り上がりから、流行、そして誰もがSEO...

Hostus Asia 最適化 VPS シンプルレビュー/Quadranet ロサンゼルス データセンター

Hostusのアジア最適化VPSがリリースされました。「Hostus-高速アジア最適化回線VPS/ク...

ユーザーのニーズを満たす非オリジナルコンテンツを作成する方法

多くのウェブマスターは、ユーザーが必要とするコンテンツはウェブサイトのオリジナルコンテンツであると誤...

衝動的な中国の電子商取引は、回り道を避けるために他から学ぶしかない

皆さん、こんにちは。最近、済南の天気は本当に暑いです。外を歩くとサウナに入るようなもので、思わず汗を...

beastnode-$3.5/4 コア/512m メモリ/512swap/30gSSD/2T トラフィック

BeastNode はロサンゼルスに登録された会社です。2011 年から VPS 事業に携わっており...

毎日の話題:オンライン化粧品の最大20%が偽物、DangdangとAmazonの両方に問題あり

A5ウェブマスターネットワーク(www.admin5.com)は3月21日、今月19日にCCTVの「...

Baidu がメジャーアップデートを実施、ウェブサイトのランキングは楽しみであると同時に心配でもあるのでしょうか?

約1か月の「調整」を経て、Baiduはついに昨日3月13日にウェブサイトの掲載とランキングを大幅に更...

新しいインフラがデジタル経済の発展を加速、オートメーション・エニウェアが中国企業のデジタル変革を支援

政府の活動報告に初めて記載された「新インフラ」は、間違いなく現時点で最も強力な産業トレンドの一つとな...

クラウド管理サービスであるAWS OrganizationsがAWS中国で利用可能に

最近、AWS 中国 (寧夏) リージョン (Western Cloud Data が運営) と AW...

簡単な説明: 新しいウェブサイトを公開後3日以内にインデックスに登録してランキング付けするためのヒントがいくつかあります。

まず、同じ業界の友人たちに聞きたいのですが、あなたの新しいウェブサイトはオンラインになってから、含ま...

クラウドコンピューティングとブロックチェーンが融合できる理由

クラウド コンピューティングは現在、成熟したテクノロジーとアプリケーションです。米国国立標準技術研究...

Kubernetes 1.24 の新機能

5月4日にKubernetesバージョン1.24が正式にリリースされました。以前のバージョンと同様に...

Ceen TaobaoアフィリエイトコンテストIIのレポート:終了しました!あけましておめでとう!赤い封筒が発送されました!

ついに、ついに、Ceenの「世界的に有名な靴のタオバオアフィリエイト」プロモーションコンテスト[シー...

映像業界の再編、商業的意図はどこへ向かうのか?

AutoNavi Maps、Sina Weibo、Momoなど多くの優れたモバイル製品を所有するアリ...