Python爬虫-requests
说明
基于python3实现:
主要方法
异常
参数
session对象
说明
无疑,py3上也可以使用urllib2库,但入门时走的py2路线,所以坚持了这一贯的曲风。这之后会刻意转py3,requests库的使用就成了重中之重。可实在没什么好讲述的,有了urllib2基础之后,基于一个“使用对照表”,一切就仿佛顺理成章。
自然非熟练情况下,并不总能记住。最近用requests库的时候老把这篇笔记翻来看,也算勉强“敷衍”了自身的需求。大概我这样的坏毛很难纠改了——“但凡没有外力迫使,一切交予时间”。所以我坚定不移的相信,只要周期足够,掌握是早晚事儿而已。
下面主要说明一下自己使用的时候明显察觉到的区别:
不需要urllib.urlencode()实现url编码,get和post请求方式直接上参数,分别对应:前者params,后者data
拿到服务器返还的response后urllib2不需要编码处理,而requsets需要,实现方式为:
response.encoding=response.apparent_encoding
urllib2对文字与照片(这样说不准确,应该是二进制文件)的处理都是response.read();requests分别对应text方法和content方法,即:
response.text,response.content
requests有个:
response.raise_for_status()
在我看来是个神器,省去了自己写判断状态码的麻烦,这很“人生苦短,我用Python”
外加一个,requests模块的session很简单
以下笔记基于中国大学MOOC,嵩天老师的《Python网络爬虫与信息提取》课程
基于python3实现
主要方法:
构造一个请求头,支持以下各种方法的基础
GET请求方式
HEAD
POST
PUT
向页面提交局部修改请求,PATCH
向页面提交删除请求
响应状态码
内容
猜测编码方式
从返回内容中分析的编码方式(备选编码方式)
HTTP响应内容的二进制形式
返回响应头
返回cookies值
cookies值转换成字典
异常:
如果响应状态码不是200,抛出HTTPError异常
参数
kwargs共13个参数
如果method=GET, params=kv(字典), 实现拼接url地址(params可以字典,字节序列,添加到url中)
如果method=POST, data=kv(字典),实现发送form表单(data可以字典,字节序列,文件对象)
续POST,json=kv,JSON格式的数据,作为请求体的一部分
,字典,HTTP定制头
,字典或CookieJar, Request中的cookie
,元组,支持HTTP认证功能
,字典类型,传输文件
,设定超时时间,秒为单位
,字典类型,设定访问代理服务器,可以增加登陆认证
,True/False,默认True,重定向开关
,True/False,默认True,获取内容立即下载开关
,True/Flase,默认T,认证SSL证书开关
,本地SSL证书
session对象
,其他使用方法不变
领取专属 10元无门槛券
私享最新 技术干货