爬取目标网站的壁纸
1.首先打开开发者模式刷新页面,查看请求数据所需的url
2.图片网站打开图片会转入另外一个网站,并不是目的所想要的直接图片文件,这里还需要进行一些搜索查找操作。
response = requests.post(url=url,headers=headers)
href = re.findall('<li><a target="_blank" href="(.*?)"',response.text)[2:]
3.这里先获取post的信息,发现,列表中第三个元素是想要的目标url
4.打开url是转入另外的一个网站,这个网站中有目标所需爬取的图片文件
img_url = re.findall('<img alt=".*?" title=".*?" src="(.*?)">',response_1.text)[0]
img_content = requests.get(url=img_url, headers=headers).content
5.设置图片文件的img_url为请求url,这里怕取得是高清图,保存到名为img的文件夹中
6.接下来就是建立文件img,将爬取到的图片放入文件夹,用正则表达式取文件标题
7.完整代码
import requests
import re
import os
filename = 'img\\'
if not os.path.exists(filename):
os.mkdir(filename)
def changer_title(name):
new_name = re.sub(r'[\/\\\:\*\?\"\<\>\|]','_',name)
return new_name
url = 'https://m.bcoderss.com/tag/%e5%8a%a8%e6%bc%ab/page/2/'
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0'
}
response = requests.post(url=url,headers=headers)
href = re.findall('<li><a target="_blank" href="(.*?)"',response.text)[2:]
for index in href:
response_1 = requests.get(url=index, headers=headers)
title = re.findall('<title>(.*?)</title>',response_1.text)[0]
title = changer_title(title)
img_url = re.findall('<img alt=".*?" title=".*?" src="(.*?)">',response_1.text)[0]
img_content = requests.get(url=img_url, headers=headers).content
with open(filename + title + '.jpg', mode='wb') as f:
f.write(img_content)
print(title, img_url)
8.爬取结果