requests
requests库是 python3 中非常优秀的第三方库,它使用 Apache2 licensed 许可证的 http 库,用 Python 编写,真正的为人类着想。requests 使用的是 urllib3(python3.x中的urllib),因此继承了它的所有特性。Requests 会自动实现持久连接keep-alive,Requests 支持 http 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码,现代、国际化、人性化。3
进群:548377875 即可获取数十套pdf哦! 分开私信!
Requests库中有7个主要的函数,分别是 request() 、get() 、 head() 、post() 、put() 、patch() 、delete() 。这七个函数中request()函数是其余六个函数的基础函数,其余六个函数的实现都是通过调用该函数实现的。
方法 说明 requests.request() 构造一个请求,支撑一下方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于http的GET(请求URL位置的资源) requests.head() 获取HTML网页头信息的方法,对应于http的head(请求URL位置的资源的头部信息) requests.post() 向HTML网页提交POST请求的方法,对应于http的POST(请求向URL位置的资源附加新的数据) requests.put() 向HTML网页提交PUT请求的方法,对应于http的PUT(请求向URL位置储存一个资源,覆盖原来URL位置的资源) requests.patch() 向HTML网页提交局部修改的请求,对应于http的PATCH(请求局部更新URL位置的资源) requests.delete() 向HTML网页提交删除请求,对应于http的DELETE(请求删除URL位置储存的资源)
而这几个函数中,最常用的又是 requests.get() 函数。get函数有很多的参数,我只举几个比较常用的参数
参数 说明 url 这个不用多说,就是网站的url params 将字典或字节序列,作为参数添加到url中,get形式的参数 data 将字典或字节序列,作为参数添加到url中,post形式的参数 headers 请求头,可以修改User-Agent等参数 timeout 超时时间 proxIEs 设置代理
举例:
import requests##设置请求头header = { 'Host': 'www.baIDu.com','User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; windows NT)','Referer' : 'http://www.baIDu.com/login/','Accept' : '*/*' }##设置提交的数据values = {'name': 'Tom','sex' : 'Man','ID' : '10' }##设置代理proxy={"http":"http://127.0.0.1:8080"} ##请求的urlrequrl="http://www.baIDu.com"response=requests.get(url=requrl,params=values,headers=header,timeout=0.1,proxIEs=proxy)
响应内容的处理
import requestsimport urllibvalue={'username':'admin','password':'123' }
res=requests.get("http://www.baIDu.com",params=value) //Get形式提交参数data=urllib.parse.urlencode(value)
res=requests.get("http://www.baIDu.com",data=data) //post形式提交参数res.status_code ##状态码
res.url ##请求的url
res.request.headers ##请求头信息,返回的是一个字典对象,不修改的话,默认是python的请求头
res.headers ##响应头信息,返回的是一个字典对象
res.headers['Content-Type'] #响应头的具体的某个属性的信息
cookies=res.cookies ##cookie信息,返回的是一个字典对象
print(';'.join(['='.join(item)for item in cookies.items()])) ##打印出具体的cookies信息
res.text ##响应内容的字符串形式,即返回的页面内容
res.content ##响应内容的二进制形式
res.enCoding='utf-8' ##设置响应的编码
res.apparent_enCoding ##从内容中分析出的响应内容编码方式(备选编码方式)
requests异常的处理
注意 requests 库有时会产生异常,比如网络连接错误、http错误异常、重定向异常、请求url超时异常等等。所以我们需要判断r.status_codes 是否是200,在这里我们怎么样去捕捉异常呢?
这里我们可以利用 r.raise_for_status() 语句去捕捉异常,该语句在方法内部判断r.status_code是否等于200,如果不等于,则抛出异常。
于是在这里我们有一个爬取网页的通用代码框架:
try: response=requests.get(url) r.raise_for_status() #如果状态不是200,则引发异常except:总结
以上是内存溢出为你收集整理的针对requests模块的详细讲解!Python爬虫必学模块!全部内容,希望文章能够帮你解决针对requests模块的详细讲解!Python爬虫必学模块!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)