我注意到使用urllib下载网页:
http://www.amazon.co.uk/Darkness-II-Limited-PC-DVD/dp/B005ULLEX6
我使用urlopen(url).read()返回的内容与firebug看到的不同。在
示例:
如果您将firebug指向页面的图像区域,它会告诉您存在一个div id="prodImageCell",但是在查看python打开的内容时,没有这样的东西,因此beautifulsoup找不到任何东西。在
这是因为图像是用javascript生成的吗?在
问题:
如果是这样的话,有没有一种方法可以下载与firebug使用urllib看到的完全相同的东西(而不是使用Selenium之类的东西)。在
我正在尝试以编程方式获取其中一个图像的源url,这里的例子是prodImageCell has src的div=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 )
>>>
之后
^{pr2}$万岁!在
刚刚用wget测试了一下(它的工作原理与urrlib类似)。 必须包含用户代理标头才能获取请求的部件:
wget-O-header='User-Agent:Mozilla/5.0(Windows NT 6.1;rv:9.0.1)Gecko/20100101 Firefox/9.0.1'http://www.amazon.co.uk/Darkness-II-Limited-PC-DVD/dp/B005ULLEX6
返回包含所请求部分的html页。在
哎哟:刚才看到你用我之前的建议成功了。太好了!在
相关问题 更多 >
编程相关推荐