requests模块发送简单的请求、获取响应
一、requests.get()
哪些地方我们会用到get请求下载网页检索
response.text类型:str解码类型:根据HTTP头部对响应的编码作出有根据的推测,推测的文本编码如何修改编码方式:response.encoding=”gbk”response.content类型:bytes解码类型:没有指定如何修改编码方式:response.content.deocde(“utf8”)网页编码分析
或者
开始编码
得到网页数据
这里为了方便,用pycharm打开,当然也可以用浏览器打开
下载的网页效果
关于参数的注意点在url地址中,很多参数是没有用的,比如百度搜索的url地址,其中参数只有一个字段有用,其他的都可以删除对应的,在后续的爬虫中,越到很多参数的url地址,都可以尝试删除参数删除多余参数
这里百度反爬虫的措施限制了User-Agent,去找一个User-Agent(网上也有很多)
二、requests.post()
哪些地方我们会用到POST请求:
百度单词翻译
各类请求
requests.get(url,params=None,**kwargs)requests.post(url,data=None,json=None,**kwargs)requests.put(url,data=None,**kwargs)requests.head(url,**kwargs)requests.delete(url,**kwargs)requests.patch(url,data=None,**kwargs)requests.options(url,**kwargs)#以上方法均是在此方法的基础上构建requests.request(method,url,**kwargs)requests模块已经将常用的Http请求方法为用户封装完成,用户直接调用其提供的相应方法即可,其中方法的所有参数有:
方式一
requests.utils.dict_from_cookiejar:把cookiejar对象转化为字典
出现这个问题的原因是:ssl的证书不安全导致(ssl.CertificateError)
在平时网上冲浪的过程中,我们经常会遇到网络波动,这个时候,一个请求等了很久可能任然没有结果
response=requests.get(url,timeout=5)五、retrying模块
上述方法能够加快我们整体的请求速度,但是在正常的网页浏览过成功,如果发生速度很慢的情况,我们会做的选择是刷新页面,那么在代码中,我们是否也可以刷新请求呢?