标签归档:python学习笔记

Python 数据抓取学习笔记

1、HTTP请求模块该怎么选择?
Python自带有urllib、urllib2两个均不符合我的要求,urllib不可带header信息等,urllib2总提示错误不稳定,最终选择第三方模块httplib2,超级好用。
2、网页内容提取用什么方案?
可以使用lxml模块,beautifulsoup模块,json模块或者正则匹配。
3、使用HTTP请求超时问题怎么解决?
Python的Http请求均使用socket通信实现,通过判断socket的timeout异常即可检测HTTP请求中的异常是否是超时异常,超时时间通过”socket.setdefaulttimeout(10)”设置,切记一定要导入socket模块。
捕获超时异常案例:
from urllib2 import urlopen
import socket
slowurl =”https://www.baidu.com/”
socket.setdefaulttimeout(1)
try:
data = urlopen(slowurl)
data.read()
except socket.error:
errno, errstr = sys.exc_info()[:2]
if errno == socket.timeout:
print “There was a timeout”
else:
print “There was some other socket error”