python_爬虫

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

2022-10-21  本文已影响0人  颜狗一只

前言

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

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


环境使用:


如果安装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. 发送请求, 模拟浏览器对于 图片目录页面url 发送请求

使用headers 请求头

实现多页数据采集:

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

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

"""

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

确定请求链接

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

    # 模拟浏览器 --> 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)

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

"""

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

开发者工具 response

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

图片详情页url地址

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

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

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

"""

提取详情页url地址

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

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]

"""

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

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

"""

        # 获取二进制数据
        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)







尾语 💝

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

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

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

上一篇下一篇

猜你喜欢

热点阅读