爬虫(2)
第三章URL库的许多用法跟requests差异不大,这里我仅总结requests的用法。
Requests库的使用
requests.get
用来向网站发出请求,返回成功可得到请求头、URL、IP等信息。
例:response = requests.get(‘http://baidu.com’)
(除了该请求,POST请求也是常用的方法之一)
该方法有以下参数
修改User-Agent(headers参数)
在爬取网页时,常常需要把User-Agent时,常常需要修改它,以伪装成浏览器发出的请求,否则浏览器可能识别出我们是爬虫,而阻止我们的求。
POST请求
post请求向网站传输一个字典,编码为表单
response对象的属性
r = requests.get(url)返回包含服务器资源的response对象,里面
requests.status_code可以的到我们发出的请求的状态码,返回200代表成功,404代表失败。
r.text,即HTTP响应内容的字符串形式,url对应的页面内容
r.encoding从响应头猜测响应内容编码
r.apparent_encoding从内容分析响应内容编码方式
r.cotent HTTP响应内容的二进制形式(音频、图片大多为二进制形式)
爬取过程中,令r.encoding=r.apparent_encoding可得到人类可读的形式
requests库的异常
r.raise_for_status方法
判断状态码是否为200,否则产生异常requests.HTTPError,在try-except中使用它,可省略额外的 if 语句
延时处理
在向服务器发出请求时,可利用timeout参数来设置延时的时间,超时将报错,以应对服务器过长时间没有响应而影响。