关于《Python写网络爬虫》第一章总结

By | 2017年 2月 14日

关于《Python写网络爬虫》第一章总结

1. 关于爬虫错误处理

比如在爬虫里 下载网页时, 我们可能会遇到一些无法控制的错误, 比如请求的页面可能不存 在。 此时,urlli b2 会抛出异常, 然后退出脚本。下面再给出一个更健壮的版 本, 可以捕获这些异常。

2. 重试下载

下载时遇到的错误经常 是临时性的, 比如服务器 过载时返回的 503Service Unavailable错误。对于此类错误 我们可以尝试重新下载,不过, 我们不需要对所有错误都尝试重新下载。 如果服务器返回的是404 Not Found 这种错误,则说明该网页目前并不存 在,再次尝试 同样的请求一般 也不会出现不同的结果。4xx 错误发生在请求存在问题时,而5xx 错误则发生在服务端存在问题时。 所以, 我们只需要确保download函数在 发生Sxx 错误时重试下载 即可。

当 download函数遇到Sxx 错误码时, 将会递归调用 函数自身进行重试。 此外, 该函数还增加了一个参数, 用于设定重试下载的次数, 其默认值为两次

3. 设置用户代理

### 默认情况下,urllib2 使用 Python-urllib/ 2 . 7 作为用户代理下载网 页内容, 其中 2 . 7是 Python 的版本号 。User-Agent:python-urllib2/.7

4. 抓取页面中所有符合要求的链接

有时页面中许多链接需要下载,单单改变url中几个数字是无法全部找到的,下面的例子可以根据你所输入的正则表达式匹配到所有符合要求的url,并且可以将网页中的相对链接转换为绝对链接

5. 增加延时的爬虫

6. 增加页面深度,避免爬虫陷阱

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注