爬虫笔记——多线程爬取斗图网表情包(threading)

本文详细记录了使用Python进行多线程爬取斗图网表情包的过程。首先,通过观察发现网站非动态加载,适合用requests进行爬取。接着,解析页面获取每个套图的链接,并进一步获取表情包的链接。最后,采用多线程技术加速图片下载,提高爬取效率。
摘要由CSDN通过智能技术生成

爬虫笔记——多线程爬取斗图网表情包(threading)

斗图网网址:斗图网,这里以爬取最新套图为例。

网站观察

在网页翻页操作中可以看到网页是非动态加载的(page为页码),那么通过requests方式爬取要更为快捷。


可以看到每个套图都在分别不同的框中,那么首先就要爬取每个套图的具体链接。
在这里插入图片描述


通过检查(f12)可以发现每个套图的链接地址
在这里插入图片描述


在每个具体链接中又可以得到具体的套图表情包
在这里插入图片描述


同样可以得到每个图片的下载链接
在这里插入图片描述

爬取框架

综上分析,可将具体的爬取过程分为:获取每个套图的链接 > 获取每个表情的链接 > 下载,而对于要下载的图片,若此处一个一个下载,则会耗时极长,故此处选择多线程方式进行爬取。

具体代码

import requests
import threading
import time
import os
import re
from urllib import request
from lxml import etree
from queue import Queue

# 生产者类用于爬取表情包链接
class Producer(threading.Thread):
    
    HEADERS = {
   
            'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
            }
    
    def __init__(self,page_queue,img_queue,*args,**kwargs):
        super(Producer,self).__init__(*args,**kwargs)
        self.page_queue = page_queue
        self.img_queue = img_queue
    
    def 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值