1.requests库的7个主要方法
但在爬虫中通常只会使用到head和get方法,其他方法只做了解即可
requests库主要方法解析
requests.request(method,url,**kwargs)
requests.get(urlparams=None,**kwargs)
requests.head(url,**kwargs)
requests.post(url,data=None,json=None,**kwargs)
requests.put(url,data=None,**kwargs)
requests.patch(url,data=None,**kwargs)
requests.delete(url,**kwargs)
2.requests库的两个重要对象
r = requests.get(url)
1.返回一个包含服务器资源的response对象
2.构造一个向服务器请求资源的request对象
其中response对象包含爬虫返回的内容
理解response的编码
r.encoding:如果header中不存在charset,则认为编码为ISO-8859-1
r.apparent_encoding:根据网页内容分析出的编码方式
3.爬取网页的通用代码框架
try:
r = requests.get(url,timeout=30)
#如果状态不是200,引发HTTPError异常
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
4.HTTP协议
http,超文本传输协议
http是一个基于“请求与相应”模式的、无状态的应用层协议
http协议采用url作为定位网络资源的标识
url格式 http://host[:port][path]
host:合法的internet主机域名或ip地址
port:端口号,缺省端口为80
path:请求资源的路径
url是通过http协议存取资源的internet路径,一个url对应一个数据资源
理解patch和put的区别
假设url位置有一组数据userinfo,包括userid、username等20个字段
需求:用户修改了username,其他不变
采用patch,仅向url提交username的局部更新请求
采用put,必须交所有20个字段一并提交到url,未提交字段被删除
patch的最主要好处:节省网络带宽