爬取目标:糗事百科
url:
数据要求:热图板块下的13页糗图
请求库:requests
解析:正则表达式
文件操作:os
写法:常规
难度:入门
import requests
import re
import os
if __name__ == '__main__':
headers = {
'User-Agent': 'Mozilla (Windows NT 10.0; Win64; x64) AppleWebKi (KHTML, like Gecko) Chrome Safari Edg;
}
url = 'https://www.qiushibaike.com/imgrank/page/%d/'
if not os.('./糗图'): # 判断文件夹是否存在
os.mkdir('./糗图') # 创建文件夹
for pageNum in range(1,14):
new_url = format(url%pageNum) # 定义新url
print(f'开始爬取第{pageNum}页......')
# 使用通用爬虫爬取整张页面
page_text = reque(url=new_url,headers=headers).text
# 使用聚焦爬虫将页面中所有的糗图进行解析和爬取
# 提取图片的正则表达式
ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
img_src_list = re.findall(ex,page_text,re.S)
for src in img_src_list:
src = 'https:'+src # 拼接网址
img = reque(url=src,headers=headers).content # 得到二进制图片
# 生成图片名称
img_name = ('/')[-1] # 分隔src倒数第一个/后面的部分作为文件名
# 图片存储的路径
img_path = './糗图/' + img_name
with open(img_path,'wb') as fp:
(img)
print(img_name,'爬取成功!')
print('爬取完成!')