Python素材下载爬虫,多线程rar下载爬虫

一个多线程素材下载爬虫,实现多线程素材下载,包含素材包rar,素材图及素材描述,应用了经典的生产者与消费者模式,不过数据没有下载全,容易出现卡死的问题,期待后期能够解决相关问题,可以算是一个半成品,供大家参考和学习,有更好的多线程解决方案也可以交流!

             

 

几个关键点:

1.素材图片的获取

素材图存在不少情况,无图,单图,多图等都有可能存在

xpath获取图片

imgs = req.xpath('//div[@class="contentinfo"]/table//@src')

条件判断,看是否存在图片

if imgs:

遍历获取图片

for img in imgs:

图片后缀的获取

suffix = os.path.splitext(img)[1]

 

2.是否能够下载,素材是否有下载权限

如果能够下载,获取到下载相关数据,下载路径链接以及素材包名,不能下载则返回为空

if int(req.xpath('//div[@class="download"]/dl[@class="downlink"]/dd[1]/b/text()')[0]) == 0:
   down_url = req.xpath('//div[@class="download"]/dl[@class="downlink"]/dt/li/a/@href')[0]
   down_name = f'{h2}/{h2}.rar'
   down_data=down_url, down_name
   print(down_data)


else:
   down_data=[]

 

3.队列的使用,老生常谈

队列只能传递一个参数!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值