2017-06-06 3 views
0

私はPython2 &を使用しています。urllib2のurlopenとbs4のBeautifulSoupを使用して、同じ製品リストのいくつかのバリエーションのHTMLコードをスクラップします。すなわちAmazon Python Web Scraping:すべての変種が最初の変種と同じHTMLコードを返す

:私はこれと同じ製品リストのすべての異なるバリエーションをスクラップするときhttps://www.amazon.com/Mouse-Pad-Star-Wars-V4/dp/B00TGGVHOW

だから、私はVAR1から戻ってまったく同じHTMLコードを受け付けております。

合計9個のバリエーションがあり、返されるコードは最初のバリエーションと同じです。

私は直接リンクにアクセスしてソースを調べると、別のHTMLを取得しますが、Pythonを使用してスクラップされている場合は、同じHTMLが取得されるため、非常に奇妙です。

誰かがこれを見て正しい方向に私を導くことができますか?とても有難い!

いくつかの情報を追加するだけで、Mr.sytechは非常に良い点を挙げました。ただし、この問題はすべての製品で発生するのではなく、一部の製品でのみ発生します。この製品を見てみると:https://www.amazon.com/VicTsing-Wireless-Portable-Receiver-Adjustable/dp/B013WC0P2Aは意図したとおりに動作しており、すべてのバリエーションが独自のHTMLを返すようになっています。

答えて

0

あなたのブラウザに表示されているものとurllib2が同じものを取得することは期待できません。たぶん、バリエーションの表示はJavaScriptで制御されます。 urllib2はHTMLを含むサーバーのレスポンスを取得するだけなので、JavaScriptやブラウザが実行するその他のものは実行しません。

urllibでデータを取得するための他のオプションがあるかもしれませんが、seleniumなどのブラウザオートメーションを使用して、JSを実行した後に表示されるDOMを取得することができます。

+0

ご返信ありがとうございます。他のAmazon製品では正常に動作するため、非常に奇妙です。その問題は特定の製品にしか起こっていないようです。あなたは読書の前に待つ(10)を追加すると助けになると思いますか? – statius

+0

例:https://www.amazon.com/VicTsing-Wireless-Portable-Receiver-Adjustable/dp/B013WC0P2A/のバリエーションは意図したとおりに動作しています。 – statius

関連する問題