关键词搜索

源码搜索 ×
×

【python】这么**得小姐姐网~不敢赶紧采集一波~免得它没了

发布2022-10-21浏览2703次

详情内容

前言

大家早好、午好、晚好吖~

今天我们来采集一下这个小姐姐网~



环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

  • import re

  • import requests >>> pip install requests


如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令


如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)

  2. 点击齿轮, 选择add

  3. 添加python安装路径


pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)

  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese

  3. 选择相应的插件点击 install(安装) 即可

  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

源码、教程 点击 蓝色字体 自取 ,我都放在这里了。


python实现案例: 批量数据采集/下载 <有方法 通用>

一. 数据来源分析

  1. 明确需求, 我们采集网上什么数据内容, 在什么地方

    分析我们想要高清原图在什么地方有

  2. 浏览器自带工具: 开发者工具 F12

    • 鼠标右键点击 插件 选择 network 刷新网页
    • 点击选择 Img 可以直接找到图片地址

    继续分析, 图片链接是从哪里来的

    • 通过搜索分析, 可以知道, 我们想要图片原图url 就在 图片详情页网页源代码里面

二. 代码实现步骤:

  1. 发送请求, 模拟浏览器对于 图片目录页面 发送请求

  2. 获取数据, 获取服务器返回响应数据
    开发者工具 response

  3. 解析数据, 提取我们想要数据内容
    图片详情页url地址

  4. 发送请求, 模拟浏览器对于 图片详情页url 发送请求

  5. 获取数据, 获取服务器返回响应数据
    开发者工具 response

  6. 解析数据, 提取我们想要数据内容
    图片原图高清url地址, 以及 标题

  7. 保存数据, 把图片保存文本文件夹

代码

# 导入数据请求模块 --> 第三方模块, 需要 pip install requests   不会 0  会 1
import requests
# 导入正则模块  内置模块 不需要安装的
import re
  • 1
  • 2
  • 3
  • 4

“”"
1. 发送请求, 模拟浏览器对于 图片目录页面url 发送请求

  • python代码如何模拟浏览器?

使用headers 请求头

实现多页数据采集:

分析请求url地址变化规律 --> 分析图片目录页面url地址变化规律

每个网站数据结构是不一样, 数据来源也不一样, 但是分析数据来源思路 和 代码实现步骤过程 差不多的

“”"

for page in range(1, 5):
    # 字符串格式化方法: 把page传入到字符串当中
    print(f'=================正在采集第{page}页的数据内容=================')
  • 1
  • 2
  • 3

确定请求链接

有网站名得链接发出来就不给过拉~宝子们自己按照下面得图添加一下哦

或点击 蓝色字体 自取 ,我都放在这里了。

    # 模拟浏览器 --> headers 请求头
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 发送请求
    response = requests.get(url=url, headers=headers)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

<Response [200]> 表示请求成功

“”"

  1. 获取数据, 获取服务器返回响应数据

开发者工具 response

  • response.text 获取响应文本数据

  • response.json() 获取响应json字典数据 <一定要完整json数据, 否则就会报错>

  1. 解析数据, 提取我们想要数据内容

图片详情页url地址

re.findall(‘匹配什么数据’, ‘什么地方’) 调用re模块里面findall 去找到匹配数据: 找到所有我们想要数据内容

从 什么地方 去匹配查询 什么数据

response.text 去匹配 <li><a target="_blank" href="(.*?)" alt="(.*?)" title=".*?"> 其中 (.*?) 就是我们想要的数据

  • () 表示精确匹配: 我们要的内容

  • 没有括号 泛匹配 不要的内容

  • .*? 通配符 元字符 . 表示匹配任意字符<除了换行符\n以外> * 匹配前一个字符0或者无限个 ? 非贪婪匹配模式

“”"

提取详情页url地址

    img_info = re.findall('<li><a target="_blank" href="(.*?)" alt="(.*?)" title=".*?">', response.text)
    # for循环遍历 把列表里面元素 一个一个提取出来
    for img, title in img_info:
  • 1
  • 2
  • 3

img: 图片详情页url地址

title: 图片标题

“”"

4. 发送请求, 模拟浏览器对于 图片详情页url 发送请求

5. 获取数据, 获取服务器返回响应数据

开发者工具 response

6. 解析数据, 提取我们想要数据内容

图片原图高清url地址, 以及 标题

[0] 列表索引取值 提取第一个元素

“”"

        # 发送请求 获取响应文本数据
        html_data = requests.get(url=img, headers=headers).text
        # 提取原图url地址
        img_url = re.findall('<img alt=".*?" title=".*?" src="(.*?)">', html_data)[0]
  • 1
  • 2
  • 3
  • 4

“”"

7. 保存数据, 把图片保存文本文件夹

  • 发送请求, 获取数据内容

  • response.content 获取响应二进制数据 <图片/视频/音频/特定格式文件…>

如果图片名字一样的话, 会覆盖掉

  • split() 字符串分割 返回列表

  • [-1] 列表索引取值, 提取最后一个元素

  • title + img_url.split('/')[-1] 字符串拼接

“”"

        # 获取二进制数据
        img_content = requests.get(url=img_url).content
        # 替换特殊字符
        img_title = title + img_url.split('/')[-1]
        img_title = re.sub(r'[\/:*?:<>|]', '_', img_title)
        with open('img漫画\\' + img_title, mode='wb') as f:
            f.write(img_content)
        print(img_url, img_title)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

效果








文章看不懂,我专门录了对应的视频讲解,本文只是大致展示,完整代码和视频教程点击下方蓝字

点击 蓝色字体 自取,我都放在这里了。

尾语 ?

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

请添加图片描述

相关技术文章

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

提示信息

×

选择支付方式

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