您的位置:新闻资讯 >文章内容
浅谈Http协议中的requests的使用方法
来源:本站 作者:admin 时间:2019-05-06 11:45:34

一、requests的基本用法


浅谈Http协议中的requests的使用方法


1、使用requests发起一个get请求,得到的response本身是一个对象,拥有很多的属性;


response=requests.get(‘https://www.XXXXX.com’)


2、如果源码的中文显示异常,可以使用以下方法进行重新编码一般都是utf8或者是gb18030;


response.encoding=‘utf8’


3、打印此次的源码的字符串格式或者是二进制格式(text、content);


print(response.content)


4、打印此次请求的地址;


print(response.url)


5、打印此次请求的响应头;


print(response.headers)


6、打印此次请求的cookie信息;


print(response.cookies)


7、打印此次请求的状态码;


print(response.status_code)


二、使用requests构造一个携带参数的get请求。


1、设置参数字典;


params={


‘username’:‘123’,


‘password’:‘456’


}


2、使用resquests发送请求如果不设置请求头,则默认的请求头是python-requests/requests版本号;


from fake_useragent import UserAgent


3、设置随机请求头;


headers=


4、设置代理IP;


proxy=


5、开始访问;


response=requests.get(‘http://httpbin.org/get’,params=params,headers=headers,proxies=proxy)


print(response.text)


6、如果访问一个网址得到的是json字符串,则可以直接调用requests里面的json()函数,直接将返回的结果转换成字典,不需要导入json模块然后在使用json.load()函数来进行反序列化了;


print(response.json())


三、使用requests构造一个携带参数的post请求。


1、设置参数字典;


data={


‘name’:‘123’,


‘age’:‘456’


}


2、设置随机请求头;


headers=


3、设置代理IP;


proxy=


4、进行访问,可以看到post请求携带的参数是放在form表单里的;


response=requests.post(‘http://httpbin.org/post’,data=data,headers=headers,proxies=proxy)


print(response.text)


四、requests模块cookie的自动追踪与管理。


1、在requests这个模块中,如果直接访问网页,那么每一次的访问之间是没有任何关系的,相当于两个不同的会话,而如果要维持同一个会话,也就是相当于使用同一个浏览器打开不同的页面,而不是每次都要重新设置cookie,这时便有了session对象(注意,此session对象和服务器的session是不同的概念);


2、创建一个session对象;


session=requests.Session()


res1=session.get(‘https://www.XXXXX.com’)


res2=session.get(‘https://www.XXXXX.com’)


3、那么以上的两次访问就是同一个会话,服务器会认为你们是同一个人;


4、有的时候为了节省时间,可以将cookie直接粘贴到headers中,或者也可以直接将cookie保存到本地。


第一步,导入一个包里面的方法;


import http.cookiejar


第二步,给创建好的session对象设置一个cookie属性,并且把MozillaCookieJar对象赋值给这个属性;


这个属性的作用主要是将你第一次登陆时候获得的set-cookie绑定到MozillaCookieJar对象上面,并且设置好如果要保存的话,应该保存到那个文件中;


session.cookies=http.cookiejar.MozillaCookieJar(‘123.txt’)


第三步,将登陆完成之后获取的set-cookie保存到本地;


session.cookies.save(ignore_expires=True,ignore_discard=True)


第四步,下次访问其他页面的时候,先进行读取,然后在访问其他页面;


session.cookies.load(‘123.txt’,ignore_discard=True,ignore_expires=True)


这样的话,就可以将cookie通过一个属性,以另类的方式,和session进行绑定。


相关文章内容简介
在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961