-
242024年4月
-
302024年3月
-
292024年2月
-
312024年1月
-
312023年12月
-
302023年11月
-
312023年10月
-
302023年9月
-
312023年8月
-
352023年7月
-
312023年6月
-
312023年5月
-
302023年4月
-
312023年3月
-
282023年2月
-
312023年1月
-
312022年12月
-
302022年11月
-
312022年10月
-
302022年9月
-
312022年8月
-
322022年7月
-
292022年6月
-
322022年5月
-
302022年4月
-
332022年3月
-
312022年2月
-
372022年1月
-
382021年12月
-
382021年11月
-
402021年10月
-
432021年9月
-
372021年8月
-
442021年7月
-
442021年6月
-
432021年5月
-
342021年4月
-
312021年3月
-
292021年2月
-
352021年1月
-
422020年12月
-
402020年11月
-
482020年10月
-
522020年9月
-
852020年8月
-
752020年7月
-
802020年6月
-
782020年5月
-
772020年4月
-
432020年3月
-
362020年2月
-
452020年1月
-
562019年12月
-
712019年11月
-
612019年10月
-
562019年9月
-
532019年8月
-
362019年7月
-
362019年6月
-
382019年5月
-
402019年4月
-
352019年3月
-
342019年2月
-
442019年1月
-
392018年12月
-
402018年11月
-
392018年10月
-
392018年9月
-
452018年8月
-
452018年7月
-
392018年6月
-
512018年5月
-
492018年4月
-
342018年3月
-
282018年2月
-
482018年1月
-
732017年12月
-
7292017年11月
-
7442017年10月
-
2892017年9月
-
12017年8月
一、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={‘User-Agent’:UserAgent().random}
4、设置代理IP;
proxy={“https”:“https://112.17.250.6:15412”}
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={‘User-Agent’:UserAgent().random}
3、设置代理IP;
proxy={“https”:“https://123.207.30.131:80”}
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进行绑定。