## 前言
大家早好、午好、晚好吖~
![](https://img-blog.csdnimg.cn/img_convert/3e9d4658e1f164dcc8e24d98b37c4576.png)
## 本次涉及
1. 网络爬虫
2. parsel数据解析
3. 多种方式提取数据
4. 图片数据保存以及应用
## 开发环境:
- python3.8 | Anaconda
- pycharm
## 第三方库
- requests #发送数据请求模块
- parsel #数据解析
**模块下载:**
1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
2. 在pycharm中点击Terminal(终端) 输入安装命令
## 插件
**xpath helper 扩展工具包**
安装步骤:私我获取xpath helper扩展工具包(注意:不要解压)
》》 打开Google浏览器 --> 更多工具 --> 扩展程序 --> 打开开发者模式 --> 把xpath helper扩展工具包直接拖入 --> 刷新
**使用方法**:快捷键 ctrl+shift+X
## 采集数据的一般步骤:
### 一. 数据来源分析
1、找数据来源 网址 url
小姐姐图片 》》点击封面图片标签 -->> 图片详情页 -->> 单个图片
2、 怎么分析数据?
开发者工具 》》 快捷键F12 / 鼠标右击点击检查
调出开发者工具点击 network (查看网络连接等 与网络相关的一些信息)
### 二. 代码实现
1. 发送请求 url
伪装 用户代理 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
2. 获取数据
3. 解析数据 parsel >>> pip install
提取封面链接和名字
- 发送数据请求(封面链接) 解析数据 >> 提取图片的链接
- 发送数据请求(图片链接) >> 解析提取数据(图片)
4. 保存数据 img
## 代码
具体爬取的网站我会在评论区打出,你们注意查看哦~
### 1. 模块导入
```c
import requests # 数据请求
import parsel
```
### 2. 数据请求
#### 2.1 明确网址
#### 2.2 构建伪装
```c
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/103.0.0.0 Safari/537.36 '
}
```
#### 2.3 发送数据请求
```c
response = requests.get(url=url, headers=headers)
# <Response [200]> 200 状态码 代表请求的状态 请求成功
# print(response)
```
### 3.获取数据
```c
html_data = response.text
```
### 4. 解析数据 parsel 下载 》》》 pip install parsel >>>win+r >>>cmd
```c
selector = parsel.Selector(html_data)
```
#### 4.1 提取数据
1.查看要提取的数据在我们获取到的数据的位置
2.当前网址每个图片的,相当于类别,所以我们要把照片拿出来
3.然后把每个图片提取出来
》》》 从每个类别取图片》把取出来的图片放到一个文件夹
#### 4.2 提取每个类别的名字
```c
text_list = selector.xpath("//h2[@class='entry-title']/a/text()").getall()
> 更多源码教程解答可直接添加Q裙;832157862
# print(text_list)
```
### 4.3 提取每个类别存放图片的链接
```c
link_list = selector.xpath('//h2[@class="entry-title"]/a/@href').getall()
# print(link_list)
```
### 4.4 zip()函数 两个分开的列表》》》一个列表
```c
lis = zip(text_list, link_list)
```
### 5 把每张图片从每个类别中提取出来
```c
for title, link in lis:
```
#### 5.1 向每个类别链接发送数据请求,获取每个类别中的图片数据
```c
html_link = requests.get(link).text
```
#### 5.2 解析类别中的图片数据
```c
selector_1 = parsel.Selector(html_link)
```
#### 5.3 提取所有图片的链接
```c
img_link = selector_1.css('.entry-content img::attr(src)').getall()
# print(img_link)
```
#### 5.4 向每张图片发送数据请求
```c
for img in img_link:
# content 转为二进制数据,使得图片能够被读取出来
img_content = requests.get(img).content
# 给每张图片命名
# split 分割数据 ()写入分割的形式 \:遇到该符号分割数据
# [-1] 提取列表中最后一个数据
img_name = img.split('/')[-1]
print(img_name)
```
### 6. 保存图片
```c
with open('img\\'+img_name, mode="wb") as file:
file.write(img_content)
```
## 尾语
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
![请添加图片描述](https://img-blog.csdnimg.cn/75943a8b3c744aaa869795bc26f2fe3e.gif)