python爬虫(2):爬取猫扑图片

来源:互联网 发布:淘宝耳环好卖吗 编辑:程序博客网 时间:2024/05/21 06:23
爬取图片自然需要找一个质量高的网站,以我多年的经验,猫扑有个猫女郎版块很适合爬取
进入猫扑随便找个帖子链接
检查元素可以发现帖子链接
由于之前爬取过该网站,有几个坑
1.正文图片都是790x600,不加限制的话会爬取到广告,头像等图片
2.不是所有图片都是jpg格式,还有JPEG格式
爬取该页面的图片代码如下
import urllib2import urllibimport reurl = 'http://tt.mop.com/15452303.html'user_agent='Mozilla/4.0(compatible;MSIE 5.5;Windows NT)' headers={'User-Agent':user_agent} request = urllib2.Request(url,headers=headers)html = urllib2.urlopen(request)reg = re.compile(r'img src="(.+?790x600.+?)">')urls = re.findall(reg, html.read())x = 0 #从0开始命名图片名称for url in urls:    name = str(x)    urllib.urlretrieve(url, '%s.jpg' %name) #将图片保存到该python文件所在文件夹    x +=1
结果如图所示(拱17张,截图不全)
只爬取一个页面的图片显然有点太少
进入该版块可以发现,每页都显示每个帖子的摘要信息
这样可以获取每页的帖子链接,然后再爬取每个帖子的图片
其中 href所对应的链接即为每个帖子的链接
页数的链接很有规律
http://tt.mop.com/c35/0/1_01.html
连接最后几位表示页数,只需要改变最后的数字即可
完整代码:
import urllib2import urllibimport reuser_agent='Mozilla/4.0(compatible;MSIE 5.5;Windows NT)' headers={'User-Agent':user_agent}x = 0url_set = set()def get_url(url):    request = urllib2.Request(url, headers=headers)    html = urllib2.urlopen(request)    reg = re.compile(r'class="postTitle"><a target="_blank" href="(/.+?)">')    urls = re.findall(reg, html.read())    return urlsdef get_img(url):    global x    request = urllib2.Request(url,headers=headers)    html = urllib2.urlopen(request)    reg = re.compile(r'img src="(.+?790x600.+?)">')    urls = re.findall(reg, html.read())    for url in urls:        print url+' saving...'        name = str(x)        urllib.urlretrieve(url, '%s.jpg' %name)        x +=1        print str(x)+' saved!'if __name__ == '__main__':    for i in range(1,3):#爬取的页数范围,图片太多,只爬了两页        url = 'http://tt.mop.com/c35/0/1_%s.html'%str(i)        urls = get_url(url)        for url in urls:            url_set.add(url)    for url in url_set:        get_img('http://tt.mop.com'+url)        
两页爬了408张图片


可以愉快的看图片了。

欢迎访问我的个人博客www.just4lcn.com

0 0
原创粉丝点击