Python3 爬虫实战(二)——图片爬虫
上一篇博文http://blog.****.net/nju_flepped/article/details/75452517爬取了ONE的每日一句,ONE不仅每日一句都很经典,每天的图片也都很好看。这次我们就来爬取每期的图片(截止到2017年7月19号)。
有了上一次爬虫的基础,这次要轻松很多。我们这次只需要分析页面源代码找到目标图片所在的标签即可。源代码如下:
通过观察源代码我们可以看到,目标图片所在的标签是img标签,我们只需要使用bs4的find_all()查找函数,即可找到,整个源代码共有两个img标签,目标图片在第二个img标签中(所以第22行代码中用h[1]取第二个img标签)。代码如下:
import re from urllib import request import requests from bs4 import BeautifulSoup url='http://wufazhuce.com/one/'#每一期公共部分 Path='B:\\pytest\\MLtest\\one_img\\'#图片保存路径 num=0#记录爬取照片的个数 for i in range(14,1775): s=str(i) currenturl=url+s#当前期的url try: res=requests.get(currenturl) res.raise_for_status() except requests.RequestException as e: print(e) else: html=res.text soup = BeautifulSoup(html,'html.parser') a=soup.select('.one-titulo')#期次 h=soup.find_all('img')#图片标签 imgUrl=h[1].get('src')#取图片的链接 index=re.sub("\D","",a[0].string.split()[0])#取得期次 if(index==''): continue imgName=Path+'VOL.'+index+'.jpg'#图片的完整路径含图片名 request.urlretrieve(imgUrl,imgName)#保存图片 num+=1 print('已爬取%s张图片...'%num) print('-----爬取结束-----')
结果: