【Python爬虫案例教学】采集海量表情包,实现表情包自由

前言

(。・∀・)ノ゙嗨 大家好,这里是池鱼

前几天发的文章都是一些小小的基础

现在就是想着给大家分享分享一些爬虫案例 (也会有数据分析的一些展示)

感兴趣的宝子直接收藏起来吧 记得给我点个关注哦 👏

采集完壁纸,就来试试表情包吧,现在这个年代,聊天的时候不发几个表情包都不是很舒服

我就是发两条信息就是一个表情包

那今天咱们就来扒拉扒拉这个网站吧 👇

在这里插入图片描述

暂且来看看 这里的小部分表情包吧

在这里插入图片描述


前期准备

环境

  • Python 3.8
  • Pycharm 2021.2版本

模块

# 导入数据请求模块 --> 第三方模块 需要安装 pip install requests  <手机第三方APP 需要自己下载>
import requests
# 导入正则模块 --> 内置模块 不需要安装  <相当于手机自带APP>
import re
# 导入文件操作模块 --> 内置模块 不需要安装
import os

步骤

采集一页数据

  1. 发送请求, 模拟浏览器对于url地址发送请求
    在这里插入图片描述

  2. 获取数据, 获取服务器返回响应数据
    开发者工具: response <网页源代码>

  3. 解析数据, 提取我们想要的数据内容
    图片标题
    图片链接

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


实现代码

1. 发送请求

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

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'
    }

2. 获取数据

获取服务器返回响应数据
开发者工具: response <网页源代码>
response --> <Response [200]>
text --> 文本
response.text: 获取响应文本数据, 网页源代码

3. 解析数据

提取我们想要的数据内容
图片标题
图片链接

    img_info = re.findall('<img class="ui image lazy" data-original="(.*?)" src=".*?" title="(.*?)" ', response.text)
    # for循环遍历, 把列表里面元素 一个一个提取出来
    for img_url, img_name in img_info:
        # img_info <列表: 箱子盒子> img_url, img_name <箱子里面东西>
        print(img_url, img_name)

4. 保存数据

发送请求, 获取二进制数据内容
response.content 获取二进制数据
保存 音频/视频/图片/特定格式文件<PDF, zip…>

###源码领取 309488165 ###
        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)

最后

今天的案例分享到这里就结束啦

对文章有问题的铁汁可以私信我哦

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值