关键词搜索

源码搜索 ×
×

python带你采集美女图片,体验畅通无阻的快乐~

发布2022-08-10浏览740次

详情内容

## 前言
大家早好、午好、晚好吖~

![](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)

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载