素材网上的图片下载要VIP? 不存在的。。。
话不多说 5分钟全部搞定,赶紧开始吧!
1.注意到第一页是“0-1.html”,第二页是“0-2.html”,由此可找到规律。
2.查看缩略图片的URL,使用F12开发者工具,通过element选项卡中的工具对网页div进行不断展开,找到图片真正的地址:
例如:
3.查看高清图的URL:进入图片详情界面,直接右键点击图片查看图片地址,如:
比较缩略图与高清图的URL对应关系,即可得出结论,高清图URL=至“.jpg!”的缩略图URL+“一陀代码”
4.编写代码:
import urllib.request import re import urllib.error for i in range(1,10): pageurl="网页链接+str(i)+".html" data=urllib.request.urlopen(pageurl).read().decode("utf-8","ignore") pat='</div></div><img src="(.*?)qt' imglist=re.compile(pat).findall(data) for j in range(0,len(imglist)): try: thisimg=imglist[j]+"/fw/1024/watermark/url/L2ltYWdlcy93YXRlcm1hcmsvZGF0dS5wbmc=/repeat/true/crop/0x1024a0a0" #被网站强行裁剪的一小部分 #thisimg=imglist[j]+"/fw/1024/watermark/url/L2ltYWdlcy93YXRlcm1hcmsvZGF0dS5wbmc=/repeat/true/crop/0x1024a0a1024" file="F:/result/"+str(i)+str(j)+".jpg" urllib.request.urlretrieve(thisimg,filename=file) print("第"+str(i)+"页第"+str(j)+"个图片爬取成功") except urllib.error.URLError as e: if hasattr(e,"code"): print(e.code) if hasattr(e,"reason"): print(e.reason) except Exception as e: print(e)
提示:代码可以左右拖动!
遇到的问题:
1)千图网需登录才能看到高清大图的URL。
2)千图网为对高清大图进行了裁剪,可能分为了多个小部分图片。
3)查看网页源代码的缩略图URL与Python爬取的URL可能会不一致,具体原因可能是因为登录导致的。
结果:
好啦!一个非常简单的爬取素材就搞定咯!
你学会了吗?