それを見ている:ダウンロードamazon.co.ukのWebページには、正確に放火犯としてのHTMLは、私はurllibはを使用してWebページをダウンロードすることに気づい
http://www.amazon.co.uk/Darkness-II-Limited-PC-DVD/dp/B005ULLEX6
私もまた、urlopen使用して取り戻すコンテンツ(URL) .read()は、火花虫類が見るものとは異なります。
例:ページの画像領域への放火犯を指している場合、それはあなたののdivのid =「prodImageCell」を開設しているもののpythonを見たときにしかし、存在を伝え
、そのようなものはありませんしたがって、美しいものは何も見つかりません。
これは画像がjavascriptを使用して生成されたためですか?
質問:
ので、ほとんどまったく同じことの放火犯をダウンロードする方法は、urllibは使用して(代わりに、セレンのようなものを使用していない)が見ている場合。
画像の1つのソースURLをプログラムによって取得しようとしています。ここでは、prodImageCellのdivはsrc = http://ecx.images-amazon.com/images/I/51uPDvJGS3Lです。 AA300 .jpg実際には画像のURLです。
回答:私は評判を持っていないので、
が適切に答えることができない:(
は、ソリューションに正しい方向に私を指しているため@huelboisのおかげで見つかったものなニーズユーザーエージェントヘッダーを使用します。
>>> import urllib2
>>> import re
>>> site = urllib2.urlopen('http://www.amazon.co.uk/\
Darkness-II-Limited-PC-DVD/dp/B005ULLEX6').read()
>>> re.search('prodImageCell', site)
>>>
前
>>> user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101\
Firefox/7.0.1"
>>> headers = {'User-Agent':user_agent}
>>> req = urllib2.Request(url=url,headers=headers)
>>> site = urllib2.urlopen(req).read()
>>> re.search('prodImageCell', site)
<_sre.SRE_Match object at 0x01487DB0>
万歳の後
!
そのIDは、生のHTMLには間違いないので、あなたは 'urlopen'でそれを見ることができます。このdivにアクセスしようとしているコードを投稿することはできますか? –
あなたが送信するHTTPヘッダ(user-agentなど)にも依存する可能性があります。 Firefoxから送信されたものと同じヘッダーを送信しようとしましたか? (あなたはリクエスト部分でそれらを見ることができます)。それらのいくつかは重要であるかもしれません。 – huelbois
+1 @huelboisは、それを考えなかった、それを行ってくれます。 Matthew私は正規表現を使って 'prodImageCell'を見つけ、一致が返されないサンプルを投稿します – user562427