下载器的构造
用urllib2实现下载器时从以下几个层面实现功能和灵活性:
handler
redirect, cookie, proxy
动作
timeout
构造请求
headers: ua, cookie, referer
关于代理
网上抓取的http代理可能存在以下问题:
- 频繁的服务器内部错误
- 已被目标服务器屏蔽
- 不转发请求,响应是固定的
- 响应不完整
因此,对一个代理的可用性校验至少要考察状态码、数据长度、关键词三个方面。
另外,当代理已通过上述校验,但其可靠性存疑时,如使用它开展爬虫作业,要小心状态码正常且有相当长度数据返回但返回数据实际不完整、不正确的情形,要在使用数据前进行必要的校验,如果数据无效,应将此信息反馈给下载器,以允许它将不可靠的代理从代理池中剔除。