2017-07-11 2 views
-1

私は最近JS主導のページを掻き集めています。私が知る限り、コンテンツをロードするには静的(HTMLページを使用できる状態)と動的に(生データからHTMLコードを作成する)の2通りの方法があります。私はXHRについて知っていて、私はいくつかの傍受に成功しています。レンダリングのないJSドリブンサイトのWebスクレイピング

しかし、私は奇妙なことに直面しています。サイトは、ページが完全に読み込まれた後にコンテンツが動的に読み込まれますが、XHRはありません。どのようにすることができますか?

私の推測です:内部のjsファイルは応答に基づいていくつかの隠された要求(データを転送する)と構築ページを作っています。 どうすればよいですか?

P.S.私はセレンベースのソリューションには興味がありません。それらはよく知られていますが、遅くて非効率的です。 P.P.S.私は主にバックエンドの開発者だから、私はJSに慣れていない。

+1

あなたは[phantomjs](http://phantomjs.org/)または[prerender.io](https://prerender.io/)を試すことができます – abhishekkannojia

+0

PhantomJSはオプションではありません - まだ遅すぎますが、偽装してください。 ioはいいようです - 私はそれを確認していただきますよ! –

+0

あなたはそのサイトへのリンクを共有できますか?そして、どんな情報を抽出したいですか? – vold

答えて

1

最近、廃止にはセレンを使用する必要はありません。 Chromeブラウザはヘッドレスモードで使用できるようになり、ページが完全に読み込まれた後にスクレイピングスクリプトを実行することができます。 簡単なガイドがあります:

https://developers.google.com/web/updates/2017/04/headless-chrome

があり、それを駆動するためnodejsライブラリ(クロムリモートインタフェース)があるが、欠点は、私はPythonの1を発見していない可能性があることです。

+0

ありがとうございますが、この解決法は適合しません。サイトの画像などを読み込むためにChromeが遅いです。私はそれのためにブラウザのエミュレーションを使用したくないです。しかし、私はあなたの答えが多くの人々に役立つと思います! –

+1

画像がisueの場合は、--disable-imagesフラグを追加してください。 – Hahihula

+0

ありがとうございます。実際には、実際のAPI呼び出しを使用してデータを取得する必要があります。だから私はそれらを入手する方法を知りたい。 –

関連する問題