千家信息网

Python如何后实现多线程爬表情包

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关Python然后实现多线程爬表情包,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。课程亮点系统分析目标网页htm
千家信息网最后更新 2026年11月02日Python如何后实现多线程爬表情包

本篇文章给大家分享的是有关Python然后实现多线程爬表情包,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    课程亮点

    系统分析目标网页

    html标签数据解析方法

    海量图片数据一键保存

    环境介绍

    python 3.8

    pycharm

    模块使用

    requests >>> pip install requests

    parsel >>> pip install parsel

    time 时间模块 记录运行时间

    流程

    一. 分析我们想要的数据内容 是可以从哪里获取

    表情包 >>> 图片url地址 以及 图片名字

    对于开发者工具的使用 >>>

    二. 代码实现步骤

    1.发送请求

    确定一下发送请求 url地址

    请求方式是什么 get请求方式 post请求方式

    请求头参数 : 防盗链 cookie …

    2.获取数据

    获取服务器返回的数据内容

    response.text 获取文本数据

    response.json() 获取json字典数据

    response.content 获取二进制数据 保存图片/音频/视频/特定格式文件内容 都是获取二进制数据内容

    3.解析数据

    提取我们想要的数据内容

    I. 可以直接解析处理

    II. json字典数据 键值对取值

    III. re正则表达式

    IV. css选择器

    V. xpath

    4.保存数据

    文本

    csv

    数据库

    本地文件夹

    导入模块

    import requests  # 数据请求模块 第三方模块 pip install requestsimport parsel  # 数据解析模块 第三方模块 pip install parselimport re  # 正则表达式模块import time  # 时间模块import concurrent.futures

    单线程爬取10页数据

    1. 发送请求

    start_time = time.time()for page in range(1, 11):    url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}html'     headers = {         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'     }     response = requests.get(url=url, headers=headers)     #  response 对象 200状态码 表示请求成功

    2. 获取数据, 获取文本数据 / 网页源代码

    # 在开发者工具上面 元素面板 看到有相应标签数据, 但是我发送请求之后 没有这样的数据返回# 我们要提取数据, 要根据服务器返回数据内容# xpath 解析方法 parsel 解析模块  parsel这个模块里面就可以调用xpath解析方法# print(response.text)

    3. 解析数据

    # 解析速度 bs4 解析速度会慢一些 如果你想要对于字符串数据内容 直接取值 只能正则表达式     selector = parsel.Selector(response.text) # 把获取下来html字符串数据内容 转成 selector 对象     title_list = selector.css('.ui.image.lazy::attr(title)').getall()     img_list = selector.css('.ui.image.lazy::attr(data-original)').getall()# 把获取下来的这两个列表 提取里面元素 一一提取出来# 提取列表元素 for循环 遍历     for title, img_url in zip(title_list, img_list):

    4. 保存数据

    # split() 字符串分割的方法 根据列表索引位置取值# img_name_1 = img_url[-3:] # 通过字符串数据 进行切片# 从左往右 索引位置 是从 0 开始 从右往左 是 -1开始         # print(title, img_url)         title = re.sub(r'[\/:*?"<>|\n]', '_', title)         # 名字太长 报错         img_name = img_url.split('.')[-1]   # 通过split() 字符串分割的方法 根据列表索引位置取值         img_content = requests.get(url=img_url).content # 获取图片的二进制数据内容         with open('img\\' + title + '.' + img_name, mode='wb') as f:             f.write(img_content)         print(title)

    多线程爬取10页数据

    def get_response(html_url):    """发送请求"""    headers = {        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'    }    response = requests.get(url=html_url, headers=headers)    return response
    def get_img_info(html_url):    """获取图片url地址 以及 图片名字"""    response = get_response(html_url)    selector = parsel.Selector(response.text)  # 把获取下来html字符串数据内容 转成 selector 对象    title_list = selector.css('.ui.image.lazy::attr(title)').getall()    img_list = selector.css('.ui.image.lazy::attr(data-original)').getall()    zip_data = zip(title_list, img_list)    return zip_data
    def save(title, img_url):    """保存数据"""    title = re.sub(r'[\/:*?"<>|\n]', '_', title)    # 名字太长 报错    img_name = img_url.split('.')[-1]  # 通过split() 字符串分割的方法 根据列表索引位置取值    img_content = requests.get(url=img_url).content  # 获取图片的二进制数据内容    with open('img\\' + title + '.' + img_name, mode='wb') as f:        f.write(img_content)    print(title)

    多进程爬取10页数据

    def main(html_url):    zip_data = get_img_info(html_url)    for title, img_url in zip_data:        save(title, img_url)
    if __name__ == '__main__':    start_time = time.time()    exe = concurrent.futures.ThreadPoolExecutor(max_workers=10)    for page in range(1, 11):        # 1. 发送请求        url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}html'        exe.submit(main, url)    exe.shutdown()    end_time = time.time()    use_time = int(end_time - start_time)    print('程序耗时: ', use_time)

    以上就是Python然后实现多线程爬表情包,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

    数据 内容 模块 图片 字符 字符串 方法 线程 二进制 位置 名字 索引 表情 元素 地址 对象 文本 方式 时间 正则 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 河南云网互联网络科技有限公司 互联网科技工作委员会副主任毛军 互联网科技垄断 网络科技有限互联网 深圳互联网络科技有限公司 世界互联网领先科技成果 迪茉互联网科技 美国互联网黑科技 兼蜜互联网科技 重庆科技学院互联网 汉立互联网科技有限公司联系电话 厦门比较好的科技互联网公司 苏州铭阳互联网科技有限公司 互联网科技的全部知识 长沙茂晟互联网科技有限公司 互联网科技实习生岗位 互联网相关科技技术 互联网科技品牌 10位科技互联网大佬 狮子座互联网科技 科技大学互联网专业好不好 广西拼得多互联网科技有限公司 茂名市互联网科技产业园 岳阳华臻互联网科技有限公司 崇明区互联网教育科技售后服务 济南有互联网科技公司吗 富国互联网金融科技混合基金 互联网风格科技公司名称 互联网科技和医药行业
    0