一:首先选取一个网站,这里我们选择了一个壁纸网站
二:进入网站,我们可以看到很多图片放在一页里

三:按下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("文件已保存成功")

qi_gai Blogger