import os
import re
#创建一个文件夹
if not os.path.exists('./fenyeTupian'):
os.mkdir('./fenyeTupian')
#请求网页(分页爬取,通用的url模板)
url = "https://tieba.baidu.com/f?kw=赵丽颖pn=%d"
headers = {
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}
# pnNum = 0 #起始页
for pnNum in range(0,11):
#对应页码的url
new_url = format(url%pnNum)
#使用通用爬虫对整张页面进行爬取
page_text = requests.get(url=new_url,headers=headers).text #获取源码数据,字符形式
#使用聚焦爬虫将所有页面的的图片进行提取
ex = r'<img.*?src="(.*?)".*?>'
img_src_list = re.findall(ex,page_text,re.S) #re.S单行匹配 正则用于数据解析,一定是re.S。findall返回列表
# print(img_src_list)
for src in img_src_list:
src = "https:" + src #一张图片完整的图片地址URL
img_data = requests.get(url=src,headers=headers).content #请求到图片形式的二进制数据
#生成图片名称
img_name =src.split('/')[-1]
print(img_name)
#图片存储的路径
imgPath = "./fenyeTupian" + img_name
with open(imgPath,"wb") as fp:
fp.write(img_data)
print(img_name,"下载成功!")
1,分页爬取数据:改变url中的相关页码参数format形成通用url模板
#通用url url = "https://tieba.baidu.com/f?kw=赵丽颖&pn=%d" for pnNum in range(0,3): new_url = format(url%pnNum) #重新对每个页面进行请求和提取数据 page_text = requests.get(url=new_url,headers=headers) #聚焦爬取页面指定的all图片数据 ex = r'<img.*?src="(.*?).*?">' img_lists = re.findall(ex,page_text,re.S) #列表数据,取出列表元素进行处理