## 前言 大家早好、午好、晚好吖~
 ## 本次涉及
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) # 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) ``` ## 尾语
好了,我的这篇文章写到这里就结束啦!
有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
