爬虫过程中遇到的URLError和HTTPError,以及对它们的处理

**

一、URLError

**
1、URLError 产生的原因主要有:
没有网络连接 、服务器连接失败、找不到指定的服务器
2、requests中的异常在:requests.exceptions
异常有哪些:
requests.exceptions.ConnectionError#未知的服务器
requests.exceptions.ConnectTimeout#连接\读取超时.
requests.exceptions.ProxyError#代理连接不上

我们可以用 try except 语句来捕获相应的异常。下面的例子里我们访问了一个不存在的
域名:

import requests
try:
	response = requests.get(url="http://www.lalalala.com")
	print("有效的url",url)
except request.exceptions.ConnectionError as e :
	print("ConnectionError:\n",e)
except Exception as e:
	print(e)

上述代码会出现一个11004的错误代号,错误原因就是没有获取到一个有效的网址服务器地址
try一下的好处就是:
1.保证程序健壮性.
2.对于有问题数据进行收集,做好留痕工作.

二、HTTPError

HTTPError 是 URLError 的子类,我们发出一个请求时,服务器上都会对应一个 response
应答对象,其中它包含一个数字"响应状态码"。
如果 urlopen 或 opener.open 不能处理的,会产生一个 HTTPError,对应相应的状态码,
HTTP 状态码表示 HTTP 协议所返回的响应的状态。
注意,urllib 可以为我们处理重定向的页面(也就是 3 开头的响应码),100-299 范围的
号码表示成功,所以我们只能看到 400-599 的错误号码
由于 HTTPError 的父类是 URLError,所以父类的异常应当写到子类异常的后面,就是说先
,首先捕获子类的异常,如果子类捕获不到,那么可以捕获父类的异常。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是关于爬虫过程可能遇到的问题及解决办法: 1. 网站反爬虫策略:有些网站会采取一些反爬虫策略,如 IP 封禁、验证码等。解决办法:可以采用代理 IP、User-Agent 伪装、验证码识别库等方式,来绕过网站的反爬虫策略。 2. 网站结构变化:有些网站可能会不定期地更改网站结构,导致爬虫无法正确获取数据。解决办法:需要定期检查目标网站的结构变化,及时做出相应的调整。 3. 数据格式不统一:不同网站或同一网站不同页面的数据格式可能不同,需要针对不同情况进行处理。解决办法:可以使用正则表达式、Beautiful Soup 等工具,对数据进行处理和清洗。 4. 爬取速度过快:如果爬取速度过快,可能会对目标网站造成过大的负荷,甚至被封禁 IP。解决办法:可以设置合适的爬取速度和时间间隔,避免对目标网站造成过大负荷。 5. 数据量过大:爬取到的数据量可能会非常大,需要进行适当的数据处理和存储。解决办法:可以使用数据库或文件来存储数据,并进行合适的数据清洗和去重。 6. 爬虫出错:在爬虫过程可能会出现各种错误,如网络连接异常、服务器响应超时等。解决办法:需要进行异常处理和重试机制,保证爬虫的稳定性和可靠性。 以上是我列举的一些常见问题及解决办法,当然还有其他的问题。在进行爬虫项目时,需要具备一定的技术能力和经验,并且需要不断学习和改进,才能更好地应对各种问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值