ページからメイン画像(現在はContent-Length
に基づいています)を取得するスクレーパーを構築しています。それはすべての<img>
要素を通過し、HEAD
リクエストを行います。しかし、特定のページ、特に、モバイル、ページ読み込み後に画像が挿入されている。どのようにこれに取り組む上の任意のアイデア?オンロード後のスクラップページJS DOM注入
私はnode.js
を使用しています。
ページからメイン画像(現在はContent-Length
に基づいています)を取得するスクレーパーを構築しています。それはすべての<img>
要素を通過し、HEAD
リクエストを行います。しかし、特定のページ、特に、モバイル、ページ読み込み後に画像が挿入されている。どのようにこれに取り組む上の任意のアイデア?オンロード後のスクラップページJS DOM注入
私はnode.js
を使用しています。
あなたの問題が解決するかどうかは確かではありませんが、jsdomを使用すると、ページ内のスクリプトをフェッチして実行し、サーバー側にDOMを与えることができます。次のようなものがあります。
jsdomには多数の問題があります。それは非常に頻繁に壊れて、最小を言う。 –
私は何を言うことができる、私はただ助けようとしています。上記は私のために、 'img'タグを動的に追加するページを取得します。 –
私はそれが動作し、これを共有するために感謝していると確信しています。以前はこのjsdomを使っていましたが、これは完璧なHTMLではなく多くのサイトを壊していました。だから、私のために、 'jsdom'はオプションではありません、申し訳ありません! –
PhantomJSを使用してください。それは "JavaScript APIを備えたヘッドレスWebKit"です。 JavaScript APIを使用して制御できるブラウザ全体のように考えることができます。それはブラウザであるため、ページを完全に実行してからそれらをスクラップすることができます。
Node.jsと同じようにと同じですが、実際にフルブラウザで、プルダウンしたページのDOMへのフルアクセス権があります。したがって、多くの jQueryのようなものを使用してDOMにアクセスすることで、生のHTMLにアクセスするのではなく、ページを知的に「掻き集める」ことが容易になります。ここで
は、あなたがそれらのページが何をしているか複製するために、サーバー上の関連するJSを実行する必要があると思いますDOM manipulation
それは面白く聞こえるが、あまりにも多すぎるかもしれない。しかし、ありがとう。 :) –
上の例です。 –
@MarcB:サーバー上で関連JSを実行するにはどうすればよいですか?図書館はありますか、これは自分で書いていますか?私は[request](https://github.com/mikeal/request)を使っています。 –