正在下载亚马逊网站网页只使用python,html就像firebug看到的那样

2024-09-30 12:14:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我注意到使用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}$

万岁!在


Tags: 图像httpurlamazonwwwurllibiidvd
1条回答
网友
1楼 · 发布于 2024-09-30 12:14:18

刚刚用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页。在

哎哟:刚才看到你用我之前的建议成功了。太好了!在

相关问题 更多 >

    热门问题