有时我们在制作PPT的时候,会在网上寻找一些相对好的素材,但有时我们想要下载下来却很麻烦,如果鼠标一张一张点击下载效率很低,其实可以用爬虫批量爬取图片。
采用爬虫爬取网页中的图片主要分为两个步骤:
获取网页中所有图片的链接;
下载图片对应链接并保存在本地。
接下来我将分别从以上两个步骤讲解图片爬取过程。
二.获取图片链接
在网页中按下键盘右上角的F12,找到网页的Html,如图所示:
当我们的鼠标在Html上移动时,左边对应位置处将会变成蓝色。在Html中查找img,直到看到左边图片对应的部分变成蓝色了,就说明找到了该图片对应的Html语句,如图所示:
展开Html语句,可以看到里面包含了图片的链接:
其他图片链接的位置同理,可以发现他们都有一个共同点,那就是图片的链接都出现在data-src=和data-type=之间,利用正则表达式即可获取所有图片的链接。
三.批量下载图片
这部分比较简单,只需要循环访问图片链接,下载后保存到本地即可。
完整程序如下所示:
rerequestsurlliberrorbs4BeautifulSouposfile=List=[]Listprint()s=:Result=A.get(url,timeout=,allow_redirects=)BaseException:print();:result=Result.textpic_url=re.findall(,result)s+=len(pic_url)len(pic_url)==:print():List.append(pic_url)snum=eachList[]:print(+str(num)++str(each)):each:pic=requests.get(each,timeout=):BaseException:print():len(pic.content):string=file++str(num)+fp=open(string,)fp.write(pic.content)fp.close()num+=__name__==:headers={:,:,:,:}A=requests.Session()A.headers=headersurl=total=Find(url,A)print(%(total))file=input()y=os.path.exists(file)y==:print()file=input()os.mkdir(file):os.mkdir(file)dowmloadPicture()print()
程序使用时仅需要修改网址链接即可,必要时需要修改正则表达式。