BeautifulSoup下载给定URL里的图片(一)

来源:互联网 发布:keynote mac 破解版 编辑:程序博客网 时间:2024/05/10 06:40

         Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。详细可以参考:Beautiful Soup 4.2.0 文档

        本文用Beautiful Soup小试牛刀以下,通过Beautiful Soup下载一给定页面的图片(当然你也可以下载其他内容),只需简单改改代码就可以。       

import urllibimport urllib2from bs4 import BeautifulSoupdef getContentFromUrl(url):    req = urllib2.Request(url)    content = urllib2.urlopen(req).read()    content = BeautifulSoup(content, from_encoding='GB2312')    return content
上面代码根据给定的url链接,采用urllib2库打开,并取回页面的内容返回存放在content里。然后,通过Beautiful Soup解码,这里采用“GB2312"编码库,以防中文乱码问题。

       下面从返回的content中,找到图片的url链接,这里使用很简单,只是简单的读取<img>标签,代码如下:

def getInfoFromContent(content):    imgID = 0        imgs = content.find_all('img')    for link in imgs:        url = link.get('src')               urllib.urlretrieve(url, "data/%02d.jpg"%imgID)          print(link.get('src'))        imgID =imgID+1
       上面中根据传入的参数content,找到所有的<img>标签,然后从中取img的src值(图片的地址),并通过urllib库的urlretrieve( )函数检索并保存到本地。

       下面是一段测试代码:

if __name__ == "__main__":    #print(getContentFromUrl("http://www.sohu.com"))    content = getContentFromUrl("http://car.autohome.com.cn/jingxuan/index.html")    getInfoFromContent(content)
       一会儿就从网站上爬下了很多图片




0 0
原创粉丝点击