• 女同桌找我要表情包,还好我会Python,分分钟给她下载几十个G...


    emmm~

    起因呢,这昨晚女同桌跟我说电脑有点卡,喊我去宿舍给她装个新系统,装系统就装系统吧,结果又说新系统表情包都没保存~

    我当时就有点生气,真当我是万能的呢?

    于是我直接就用Python给她爬了几十个G,完事扭头就走,任她怎么喊我也没用!

    在这里插入图片描述

    一、准备工作

    使用的环境

    • python3.8 | Anaconda
    • pycharm

    使用的模块

    • requests 第三方模块 需要手动安装
    • re 内置模块不需要安装

    win+r 输入cmd ,确定后新窗口输入 pip install requests 即可安装成功。

    插件安装

    xpath helper扩展工具包

    安装步骤:找助理老师获取xpath helper扩展工具包(注意:不要解压)
    》》 打开Google浏览器 --> 更多工具 --> 扩展程序 --> 打开开发者模式 --> 把xpath helper扩展工具包直接拖入 --> 刷新
    使用方法:快捷键 ctrl+shift+X

    思路流程

    1、分析数据来源
    第一页:https://fabiaoqing.com/biaoqing/lists/page/1.html
    多页 —> 第一页 --> 一个
    2、实现代码

    • 发送请求,第一页数据
    • 获取数据
    • 解析数据,表情
    • 保存数据

    二、效果展示

    部分效果展示

    三、代码解析

    1、发送请求

    第一页数据

    url = 'https://fabiaoqing.com/biaoqing/lists/page/1.html'
    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'
    }
    response = requests.get(url, headers=headers)
    
    
    # <Response [200]>  响应对象   200 状态  成功  404  403
    print(response)

    2、获取数据

    网页源代码

    print(response.text)

    re 找规律

    3、解析数据

    .*? 精准匹配数据

    re_data = re.findall('<img class="ui image lazy" data-original="(.*?)" src="/Public/lazyload/img/transparent.gif" title="(.*?)" ', response.text)
    # print(re_data)
    
    # for 循环
    for img in re_data:
        # print(img)
        #索引 [0]  [1] ()
        # 单个表情包链接
        link = img[0]
        suffix = link.split('.')[-1]
        # print(suffix)
        # print(link)
        # 名字
        title = img[1]
        title = re.sub(r'[\/:*?"<>|]','',title)
        # 二进制
        content = requests.get(link, headers=headers).content
        # print(content)

    4、保存数据

    with open('表情包\\' + title +'.' +suffix, mode='wb') as file:
        file.write(content)
    # 我也录制了对应的视频详细讲解,完整代码和视频都放在这个裙了 279199867

    好了,今天的分享就到这里~

    最后给大家分享一套Python教程:Python实战100例,希望对大家有所帮助!

  • 相关阅读:
    类和接口的区别
    ref 和out的区别
    重载 重写 多态区别
    UML种类与类的关系
    Window.open() 全攻略
    C#委托
    RT Diagnostics Routines
    tar.bz2 解压命令。
    教你10招最有效防电脑辐射方法
    预处理,编译, 优化, 汇编, 链接
  • 原文地址:https://www.cnblogs.com/hahaa/p/16694439.html
Copyright © 2020-2023  润新知