2016-12-28 3 views
0

私はAjaxページを持っている大規模なオンラインマーケットプレイスのウェブサイトをスクラップしたいと思います。私はCentos VPSに設定して、断続的にサイトのデータを取得して、私の製品提供戦略を有効にしたいと思います。Python Scrapy:Seleniumを使用する方が良いでしょうか、XHRリクエストをシミュレートするだけですか?

私はpythonとscrapyとこの場合スクレイピングに新しいです。私はいくつかのサイトを読んで、AJAxコンポーネントを使ってページをスクラップするようにしてきました。

方法1.セレンと相互作用する治療のため。私はこれが動作するかどうかわからない私のvpsに全体のセットアップをインストールしています。セレンにはGUIブラウザが必要ですか?しかし、これは素晴らしい設定であり、Webポータルの将来の変更が起こった場合に備えて、迅速な変更が可能になります。

方法2. XHR要求をシミュレートするための治療用。 XHRの呼び出しについていくつかの勉強があります。ただし、処理が高速になりますが、今後のサイトの変更があれば調整するまでに時間がかかります。

助けが必要です。

+0

XHRリクエストは他のリクエストと同じです。また、レイアウトはXHRレスポンスよりも変化する可能性があります。そう、はい、クロムにページを読み込み、どのURLにデータがあるのか​​把握するためにネットワークタブを開き、それだけを使用します。 – pguardiario

答えて

1

XHR、AJAX、または他のタイプの要求の複製は、Seleniumのようなものを使用する場合よりも、複数回で高速になり、リソースを大幅に節約できます。

しかし、これを最大限に活用するには、すべてのリクエストを手作業でリバースエンジニアリングする必要があります。一部のウェブサイトでは、ページ上で検索した商品データを入力するためのリクエストがいくつかあります。
このサイトでは、ウェブサイトが行うすべてのXHRまたは同様のリクエストをリバースエンジニアリングする代わりに、何かを使ってJavaScriptをレンダリングするのが理にかなっています。

splashと呼ばれる非常に優れたツールがあります。これは、WebブラウザのようなWebページをレンダリングするサービスです(qt Webブラウザを使用します)。これはセレンのパフォーマンスを大幅に上回る怠惰なアプローチですが、それにもかかわらず、依然として治療の要求を書き直すという実践的なアプローチの背後にあります。

+0

洞察のためにグラニトサウルスに感謝します。 – dhermanus

関連する問題