用正则表达式爬取所有的糗图图片
非常简单,废话不多说,上代码
import requests
import re
import os
if __name__=='__main__':
#指定页面url与UA伪装、建立一个文件夹
if not os.path.exists('./qiutu'):
os.mkdir('./qiutu')
headers = {
'User Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36'
}
#设置一个通用的url
url = 'https://www.qiushibaike.com/imgrank/page/%d/'
# 发送请求并获取整个页面的响应数据
for pageNum in range(1,3):
new_url = format(url%pageNum)
page_text = requests.get(url=new_url,headers=headers).text
#使用聚焦爬虫正则表达式爬取所有的糗图图片进行解析/提取
ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
#将正则表达式运用于爬取到的所有数据
img_list_data = re.findall(ex,page_text,re.S)
#print(img_list_data) 验证一下
for src in img_list_data:
src = 'https:'+src #拼接一个完整的url
img_data= requests.get(url=src,headers=headers).content #获取数据的二进制形式
img_name= src.split('/')[-1] #生成图片名字
img_path= './qiutu/'+img_name #存储图片路径
with open(img_path,'wb') as fp:
fp.write(img_data)
print(img_name,'over!!!')