• 谁还说我没表情包用?马上用Python采集上万张个表情包


    前言

    今天来表演一手 采集全网表情包图片

    虽然我现在的wx表情包已经996个了,但是我还在存表情包哈哈,多了就继续删

    现在跟人聊天,不发个表情包,我都觉得不对劲,怪难受的

    索性今天就来,给你们分享一下,如果批量采集网站上的表情包吧

    在这里插入图片描述

    模块使用

    import requests >>> pip install requests
    - pip install -i https://pypi.doubanio.com/simple/ requests
    import re
    
    • 1
    • 2
    • 3

    实现代码

    源码.点击领取即可

    采集一页数据 :

    1. 发送请求, 模拟浏览器对于url地址发送请求

    https://fabiaoqing.com/biaoqing

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

    开发者工具: response <网页源代码>

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

    图片标题
    图片链接

    1. 保存数据, 把图片内容保存到本地文件夹

    1. 发送请求

    模拟浏览器对于url地址发送请求

    python学习交流Q群:309488165 ### 源码领取
    for page in range(26, 251):
        print(f'=====================正在采集第{page}页的数据内容=====================')
        # 确定请求链接 f 字符串格式化方法, 把page传入到 url 这个字符串中间
        url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}.html'
        # 伪装模拟 字典数据类型, 构建完整键值对
        headers = {
            # User-Agent 用户代理, 表示浏览器基本身份信息
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
        }
        # 发送请求
        # 调用requests模块里面get请求方法, 对于url地址发送请求, 并且携带上headers请求头伪装, 最后用自定义变量名response接收返回数据
        response = requests.get(url=url, headers=headers)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2. 获取数据,

    获取服务器返回响应数据

    • 开发者工具: response <网页源代码>
    • response -->
    • text --> 文本
    • response.text: 获取响应文本数据, 网页源代码

    3. 解析数据

    提取我们想要的数据内容

    • 图片标题
    • 图片链接
    正则表达式re 了解 1 不了解 0
    
    re模块findall方法 找到所有数据
    re.findall('匹配什么数据', '什么地方')
    
    img_info = re.findall(', response.text)
    # for循环遍历, 把列表里面元素 一个一个提取出来
    for img_url, img_name in img_info:
        # img_info <列表: 箱子盒子> img_url, img_name <箱子里面东西>
        print(img_url, img_name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4. 保存数据: 发送请求, 获取二进制数据内容

        response.content 获取二进制数据
        保存 音频/视频/图片/特定格式文件<PDF, zip...>
    """
    img_content = requests.get(url=img_url, headers=headers).content
    # 自动创建文件夹  \ 转义字符串, 把含有特殊含义字符, 转义成除了本身以外不含有其他特殊含义
    filename = 'data\\'
    # 判断是否存在这个文件
    if not os.path.exists(filename):
        # 自动创建文件夹
        os.mkdir(filename)
    # 根据图片自己的后缀
    img = img_url.split('.')[-1]
    # 替换特殊字符
    new_name = re.sub(r'[\/:*?"<>|]', '', img_name)
    # len() 统计元素个数
    if len(new_name) > 20:
        new_name = new_name[:10]
    """
    OSError: [Errno 22] Invalid argument: 'data\\这盒里吗?.gif'
        含有特殊字符
    """
    with open(filename + new_name + '.' + img, mode='wb') as f:
        # 写入数据
        f.write(img_content)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    效果

    在这里插入图片描述

    在这里插入图片描述

    最后

    今天的分享到这里就结束了

    顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

    Python零基础教学合集

    对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
    觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

  • 相关阅读:
    Promise详解
    定时发布文章的Typecho采集翻译发布插件
    分享几种 Java8 中通过 Stream 对列表进行去重的方法
    fyne - 谁说用Go不能开发应用界面
    java继承简介说明
    c++的priority_queue各种使用方法
    如何让GPT不再胡说八道
    78评价《乡村振兴战略下传统村落文化旅游旅游设计》许少辉博士新书
    【设计模式】2.工厂模式
    联邦学习简介
  • 原文地址:https://blog.csdn.net/aliYz/article/details/128162942