Python爬虫爬取4k高清图片——xpath解析

Python爬虫爬取4k高清图片——xpath解析数据

Python爬虫爬取4K高清图片,网址是:https://pic.netbian.com。将爬取动物类的图片。

爬取彼岸图网中的动物类4k高清图片

1.1 打开网页,初步获取信息

页面中通过点击底部的页面数可以跳转到指定页面。
Python爬虫爬取4k高清图片——xpath解析_第1张图片
打开网页源码查看请求响应包。可以看到网页的请求URL和网页请求方法,以及数据类型。
Python爬虫爬取4k高清图片——xpath解析_第2张图片
点击页面底部的页面数,跳转到不同页面,发现URL发生变化,我们需要找出URL的规律。
第一页的URL:https://pic.netbian.com/4kdongwu/
第二页的URL:https://pic.netbian.com/4kdongwu/index_2.html
第三页的URL:https://pic.netbian.com/4kdongwu/index_3.html
……
第22页的URL:https://pic.netbian.com/4kdongwu/index_22.html

发现从第二页开始,URL后都多了index_页数.html,尝试把index后面的数字改为1,看看能否跳转到第一页。修改之后发现并不能跳转第一页。打开开发者工具的同时,从其他页面跳转到第一页,发现其请求URL变为:https://pic.netbian.com/4kdongwu/index.html
在浏览器的网址栏输入该URL,确实能请求到第一页,由于每一页的URL的变化是不连贯的,但是从第2页开始是有规律的。所以我们可以单独获取第一页的图片,再通过循环获取第2页到第22页的图片。

1.2 准备网页请求方法所需的参数

  • 指定URL
1页的URL:https://pic.netbian.com/4kdongwu/index.html
第2-22页的URL:https://pic.netbian.com/4kdongwu/index_页数.html
  • 进行UA伪装
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43'}

1.3 爬取第一页的图片

第一页的url是:https://pic.netbian.com/4kdongwu/index.html
1.3.1 发起请求,获取响应

我们对第一页发起请求:

response = requests.get(url,headers=headers)
print(response.status_code)
print(response.encoding)          # 编码类型是ISO-8859-1
print(response.text)        

可以看到响应内容的编码格式是ISO-8859-1,响应内容中有乱码,说明响应内容的编码格式与我们电脑的编码格式不相同。
Python爬虫爬取4k高清图片——xpath解析_第3张图片
在相应内容html文档的头部,可以发现文档的编码格式为“gbk”。
在这里插入图片描述
尝试将响应内容的编码格式改为“gbk”,并打印响应内容。

response.encoding = 'gbk'
print(response.text)  
# 或者通过另一个方法来修改编码格式
# # 手动设定响应数据的编码格式
# page_text = response.text
# # 先将响应内容编码成ISO,再解码成gbk(通用处理中文乱码的解决方案)
# page_text = page_text.encode('ISO-8859-1').decode('gbk')
# print(page_text)

输出结果是如下,是正常的,无乱码。
Python爬虫爬取4k高清图片——xpath解析_第4张图片

1.3.2 解析网页数据,获取图片信息

首先实例化一个etree对象:

# 实例化一个etree对象
tree = etree.HTML(page_text)

打开网页源码,使用定位器定位页面中的全部图片,定位到

你可能感兴趣的:(python,爬虫,开发语言)