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

前言

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

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

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

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

谁还说我没表情包用?马上用Python采集上万张个表情包_第1张图片

模块使用

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

实现代码

源码.点击领取即可

采集一页数据 :

  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)

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)

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)

效果

谁还说我没表情包用?马上用Python采集上万张个表情包_第2张图片

谁还说我没表情包用?马上用Python采集上万张个表情包_第3张图片

最后

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

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

Python零基础教学合集

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

你可能感兴趣的:(pytho基础,python,开发语言)