1

nokogiriを使用してルビーでスクレーパーを構築していますが、ソースを解析することによって作成されるdomと、ブラウザーがソースを解析するときのdomが異なる場合があることに気付きました。

たとえば、ブラウザはtbodyタグを追加します。ドキュメントが適切に形成されていない場合、またはjavascriptが実行時に変更を加えた場合、ブラウザはタグを変更できます。

問題は、(この段階で要素インスペクターを使用して)ブラウザーのdomから目的の要素パスを取得していることですが、ソースの解析からdomでその要素を検索すると、これらの違いのために何も見つかりません。

ブラウザと同じDOMを取得することは可能ですか?もしそうなら、どのようにですか?

4

1 に答える 1

0

ブラウザを使用して、レンダリングされたソースから dom を取得できます。ヘッドレスまたは実際のブラウザーを駆動できる、selenium、webkit-headless、poltergeist などのドライバーがいくつかあります。

すべてのブラウザはおそらく異なるバージョンをレンダリングします。これは、公式の標準実装がないためです。そのため、自分に最適なものを見つける必要があります。

于 2012-07-24T20:57:34.127 に答える