Python爬虫用正则化爬取多张页面的图片
爬取多张页面的关键是设置一个通用的url模板:url = ‘https://www.qiushibaike.com/imgrank/page/%d/’,因为这些页面之间是有关联的,改变%d的值,即可获得多张页面。
获取每张页面的全部数据之后,可以使用正则化来解析html语言,获得我们需要的数据。
#爬取糗事百科多张页面的图片
import requests
import re
import os
#创建一个文件夹,保存所有的图片
if not os.path.exists('./qiutuLibs'):
os.mkdir('./qiutuLibs')
#进行UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
#设置一个通用的url模板
url = 'https://www.qiushibaike.com/imgrank/page/%d/'
for pageNum in range(1,3):
#对应页码的url
new_url = format(url%pageNum)
#使用通用爬虫对url对应的一整张页面进行爬取
page_text = requests.get(url=new_url,headers=headers).text
#正则化,使用聚焦爬虫将页面中所有的糗图进行解析/提取
ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
img_src_list = re.findall(ex,page_text,re.S)
# print(img_src_list)
for src in img_src_list:
#拼接出一个完整的图片url
src = 'https:'+src
#请求到了图片的二进制数据
img = requests.get(url=src,headers=headers).content
#生成图片名称
imgName = src.split('/')[-1]
imgPath='./qiutuLibs/'+imgName
with open(imgPath,'wb') as fp:
fp.write(img)
print(imgName,'下载成功!')