一:首先选取一个网站,这里我们选择了一个壁纸网站
二:进入网站,我们可以看到很多图片放在一页里
三:按下F12开发者工具,点击Elments查看网页的代码
四:按住左上角箭头,并点击网页中的图片找到图片所在代码的地方
五:知道这些后我们可以开始进行代码填写了
1.首先我们需要使用的是爬虫的常见库requests来获取HTML网页的代码
下面展示一些 内联代码片
。
import requests
url = 'https://www.h128.com/pc/anime/0/2/1920x1080/t/1.html' #网页的网址
headers = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
} #加入请求头
r = requests.get(url,headers = headers) #get
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text)
2.获得了HTML网页的代码后,我们要想方法去获得图片所在位置,这时候我们使用我们的第二个库,python自带的re库(,也就是我们所说的正则表达式)中的findall函数来获取图片所在位置,就是从一群字符串中匹配你想要的字符串,从上图可以知道我们想要的图片位置在一个src标签里,则:
下面展示一些 内联代码片
。
a = re.findall('<img src="https:(.*?)" alt',r.text) #(.*?)表示任意的字符串
让我们来看看返回的值是什么
我们发现爬取到的并不是图片,所以我们回过头看发现原来的图片前面有https:
之后我们加入代码
x = 'https:' + i
六:最后我们把图片爬取到电脑上
r = requests.get(url,headers = headers)
root = "D://pics1//"
path = root + url.split('?')[0].split('/')[-1] #图片的名字更改
with open(path, 'wb') as f:
f.write(r.content)
f.close()
print("文件已保存成功")
看看下载的图片
发现图片的规格不是原图,比较原图
下载的图
原图
发现w和h后面的参数有所差异,使用replace函数进行更改,最后运行代码查看
最后爬虫完毕,这次的爬虫只能爬取一页,如果爬取多页,可以用列表存取,如果要效率更高,到后来可以使用多线程爬虫。
最后上完整代码
下面展示一些 内联代码片
。
import requests
import re
url = 'https://www.h128.com/pc/anime/0/2/1920x1080/t/1.html' #网页的网址
headers = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"
} #加入请求头
r = requests.get(url,headers = headers) #get
r.raise_for_status()
r.encoding = r.apparent_encoding
#print(r.text)
a = re.findall('<img src="https:(.*?)" alt',r.text) #(.*?)表示任意的字符串
for i in a:
#print(i)
url = 'https:' + i
url = url.replace('w_487', 'w_1421').replace('h_274', 'h_799')
#print(x)
r = requests.get(url,headers = headers)
root = "D://pics1//"#保存在D盘的pics1里,这里要提前建好文件夹
path = root + url.split('?')[0].split('/')[-1] #图片的名字更改
with open(path, 'wb') as f:
f.write(r.content)
f.close()
print("文件已保存成功")
转载:https://blog.csdn.net/Six23333/article/details/107965742
查看评论