千图网爬虫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了千图网爬虫相关的知识,希望对你有一定的参考价值。

 1 import urllib.request
 2 import re
 3 import urllib.error
 4 
 5 for i in range(0, 2):
 6     pageurl = "http://www.58pic.com/piccate/3-152-632-" + str(i) + ".html"
 7     data = urllib.request.urlopen(pageurl).read().decode("utf8", "ignore")
 8     pat1 = class="thumb-box".*?src="(.*?).jpg!
 9     pat2 = data-original="(.*?).jpg!
10     imglist1 = re.compile(pat1).findall(data)
11     imglist2 = re.compile(pat2).findall(data)
12 
13     for j in range(len(imglist2)):
14         print(imglist1[j] + ".jpg!qtwebp290 ")
15         try:
16             file="/home/liuqianli/Documents/s2/"+str(i)+str(j)+".jpg"
17             urllib.request.urlretrieve(imglist2[j]+".jpg",filename=file)
18             print(""+str(i)+"页第"+str(j)+"图片成功")
19         except urllib.error.URLError as e:
20             if hasattr(e,"code"):
21                 print(e.code)
22             if hasattr(e, "reason"):
23                 print(e.reason)
24         except Exception as e :
25             print(e)

其实网络爬虫就这么几个套路,所以一定要慢慢学,学一点总结一点,不能图快,

第6页分析源网址,就是主URL,通过这个URL经过浏览器打开,

本题的难点是re的书写, 里面的图片在两个地方都有 

1,"class="thumb-box" target="_blank"><img src="http://pic.qiantucdn.com/58pic/17/03/21/57d58PICipF.jpg!qtwebp290" alt="爆款男鞋详情页下载"

2,"class="thumb-box" target="_blank"><img class="lazyload" data-original="http://pic.qiantucdn.com/58pic/27/96/07/96s58PICHvh.jpg!qtwebp290" src="

对于第一个 用pat1 这个正刚表达式,对于第二个,只能用pat2这个正刚,

如果只用第一个的话就会每四个出匹配第二个情况,这种情况也可以处理,但是总理来说用第二个正刚表达式会更好一点,得到的图片也会多一点,

对于第14行,如果只加.jpg的话是不对下载图片的,因为网页源码中就是包括后面部分,所以要加上

以上是关于千图网爬虫的主要内容,如果未能解决你的问题,请参考以下文章

上海浦东 | 千图网 招聘 前端/PHP 中高级开发工程师 15-25k

帝国CMS7.5仿千图网图片素材下载模板升级版

❤️PPT素材网站推荐❤️让你的PPT更加迷人❤️

爬虫日常练习-艾图网单页面图片爬取

Python爬虫 包图网case

哪个网站PPT的模板或者素材是免费的?