您当前的位置: 首页 >  Python

轻松学Python

暂无认证

  • 0浏览

    0关注

    317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python多线程爬取表情包,代码都放在最后了

轻松学Python 发布时间:2021-12-20 16:26:01 ,浏览量:0

文章目录
  • 一、写在前面
  • 二、步骤解析
  • 三、效果展示

一、写在前面

从老马的两大聊天软件,到其它的各种软件,表情包一直都是中国互联网用户的「心头好」,时至今日,表情包已然成为必不可少的聊天方式。

无论是正事儿还是闲侃,表情包都必不可少,要是聊着聊着发现没得表情包了,多尴尬~

所以它来了,Python批量爬取网络表情包,只要是网上有的,全部都爬下来保存。

二、步骤解析

导入模块

import requests # 数据请求模块
import parsel # 数据解析模块
import re # 正则表达式

替换特殊字符

def change_title(title):
    mode = re.compile(r'[\\\/\:\*\?\"\\|]')
    new_title = re.sub(mode, '_', title)
    return new_title

发送请求

def get_response(html_url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
    }
    response = requests.get(url=html_url, headers=headers)
    return response

保存数据

def save(name, title, img_url):
    img_content = get_response(img_url).content
    with open('img\\' + title + '.' + name, mode='wb') as f:
        f.write(img_content)
        print('正在保存:', title)

主函数

def main(html_url):
    html_data = get_response(html_url).text
    selector = parsel.Selector(html_data)
    divs = selector.css('#container div.tagbqppdiv')
    for div in divs:
        title = div.css('img::attr(title)').get()
        img_url = div.css('img::attr(data-original)').get()
        name = img_url.split('.')[-1]
        new_title = change_title(title)
        if len(new_title) > 255:
            new_title = new_title[:10]
            save(name, new_title, img_url)
        else:
            save(name, new_title, img_url)

函数入口 启动 多线程

if __name__ == '__main__':
    start_time = time.time()
    exe = concurrent.futures.ThreadPoolExecutor(max_workers=7)
    for page in range(1, 11):
        url = f'https://www.fabiaoqing.com/biaoqing/lists/page/{page}.html'
        exe.submit(main, url)
    exe.shutdown()
    use_time = int(time.time()) - int(start_time)
    print(f'总计耗时:{use_time}秒')
三、效果展示

爬取过程 保存结果 在这里插入图片描述 兄弟们,代码我都直接给你们了,看完点个赞转发一下呗~ 在这里插入图片描述

关注
打赏
1663832040
查看更多评论
立即登录/注册

微信扫码登录

0.0807s