从一次爬虫案例谈谈异常处理与多线程的重要性

在一次爬取头像图片的任务中,初始爬虫因下载速度过快导致异常中断。通过添加异常处理,确保了程序的持续运行。进一步采用多进程代替多线程,实现了每分钟下载50多张图片的效率,证明了异常处理和多进程在爬虫中的关键作用。
摘要由CSDN通过智能技术生成

最近因为项目需要,需要爬取一些头像图片,爬取的网址是https://www.woyaogexing.com/touxiang/,这次爬虫没有使用任何框架,使用Python的requests库请求网址,使用pyquery解析网页。网页的结构比较简单,这里就不详细说了,刚开始时,由于下载速度过快,下载一会就出现异常而中断了,后来我就每下载一张后就暂停几秒。晚上回去前,把爬虫脚本一直运行着,以为第二天早上来应该要下载几千张图片了,结果并不是,下载了100多张后程序就发送异常而终止了。后来我就想要是不中断就好了,异常处理就派上用场了。于是我改写了爬虫程序,将可能出现异常的语句均添加了异常处理,这样爬虫程序就可以一直运行下去了。由于每次下载过后都会延迟一段时间,我就想到了多线程,但是由于对python的多线程不太熟悉,所有就改用了多进程。将脚本同时运行了8次,这样下来一分钟就可以下载50多张图片了,一个晚上几万张图片妥妥的了。下面是使用到的爬虫脚本:

# -*- coding: utf-8 -*-
import random
import time
from PIL import Image

import requests
from pyquery import PyQuery as pq

class all_in_one:

    def __init__(self):
        self.image_name = 1
        self.image_suffix = '.jpeg'
        self.has_download_img = set()
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值