beautiful Soup实现抓取图片素材

用Python写了一个简单的爬虫,实现抓取图片素材,源代码可以查看我的GitHub:https://github.com/corolcorona/spider_demo

 

1.抓取图片链接:http://sc.chinaz.com/tupian/fengyetupian.html

选择查看源代码,需要注意的是图片路径,也就是我们要抓取的内容,可以看到每个div标签下包含一个图片,alt是图片的描述,src2为图片的路径

 

2.新建一个Python项目

首先我用的环境是Mac,关于Mac下怎样新建一个Python项目,可以参考:http://www.cnblogs.com/corolcorona/p/6678197.html

 

3.安装Python库

有用到2个库,1个是urllib2(不需要安装)用于抓取URL,1个是BeautifulSoup,用于解析抓取下来的HTML

关于安装BeautifulSoup,可以参考:http://www.cnblogs.com/corolcorona/p/6667698.html

 

4.写代码

 

import urllib2
import urllib
import os
from BeautifulSoup import BeautifulSoup
def getAllImageLink():
    html = urllib2.urlopen('http://sc.chinaz.com/tupian/fengyetupian.html').read()
    soup = BeautifulSoup(html)

    liResult = soup.findAll('div',attrs={"class":"box picblock col3"})
    print len(liResult)

    for li in liResult:
        imageEntityArray = li.findAll('img')
        for image in imageEntityArray:
            link = image.get('src2')
            imageName = image.get('alt')
            filesavepath = '/Users/corolcorona/desktop/picture/%s.jpg' % imageName
            urllib.urlretrieve(link,filesavepath)


if __name__ == '__main__':
    getAllImageLink()

 

urllib2.urlopen方法抓取了网页的HTML

BeautifulSoup.findAll方法解析了抓取下来的HTML

urllib.urlretrieve方法保存到指定路径

 

5.可以增加一个循环抓取下一页的数据