2012-09-03 28 views
-2

我想用脚本获取本网站的所有图片。我使用Chrome开发人员工具查看了他主页的源代码。这些图像的URL就像如何在本网站下载所有图片:huaban.com

src="http://img.hb.aicdn.com/3e32a8b101e515b9e7dbe8f5a2e47afff5ec6bcf4e4a-OTvsuu_fw192 

但是,如果使用wgetcurl下载该网页,甚至是“保存铺路”在浏览器中,存在这样的HTML文件没有这样的链接。我不知道如何获得所有这些链接。另一个问题是,如果我们向下滚动页面,图像会持续出现。我不知道是否有任何方法获得整个页面。

+0

“这个html文件中没有这样的链接”?意味着什么? –

+0

如果从wget返回的html没有链接,并且它们在您滚动时一直出现,我会猜测它们是使用javascript动态加载的。因此,您需要一个可以在解析html之前运行javascript的库,或者从浏览器复制“生成的”源。 –

+0

表示在下载的html中没有img url。 – JeromeCui

回答

1

您能否将网址发布到您想要下载所有图片的最终页面?

或者您的意思是http://huaban.com/所有图片登陆页

用下面的代码,你可以“拯救”图片网址到你的文件系统中一个文件:

image_path = 'http://img.hb.aicdn.com/3e32a8b101e515b9e7dbe8f5a2e47afff5ec6bcf4e4a-OTvsuu_fw192' 
with open(r'<path_to_file>.jpg', 'wb') as image: 
    image.write(urllib2.urlopen(image_path).read()) 

但检索“源” pathes图像......我担心他们会被生成javascript组件,所以你没有太多的选择。

也许一种解决方案可能是使用无头浏览器或JavaScript引擎桥梁如Python-Spidermonkey来获得最终的(js-buidled)html内容。

-Colin-

+0

是的,我知道你的意思。我想要做的就是在这个主页面中获取所有图像链接,比如'http:// huaban.com/pins/17989365 /',然后使用此链接获得链接,例如'http://huaban.com/pins/17989365/zoom /',最后在这个页面下载大图。谢谢。 – JeromeCui

+0

由于我更新了我的文章,我担心您必须使用Python-Spidermonkey等无头浏览器或JavaScript引擎桥来请求并解析最终(包含标签的html)内容。但是建立一个spidermonkey环境既不容易也不平凡,因为该库的安装包含一个C编译部分。你是否熟悉包括c-compilations在内的* setup * python libaries? –

+0

好的,我会试试。有点棘手。 – JeromeCui