3.Python发Get请求
1.新建工程,命名;查看python的包,如果配置加到环境变量了,会自动加载出来,否则需自己手动加载python的包(python.exe的安装目录)
2.新建python package
3.新建python 文件
注:类名以大写开头,其他都小写开头,驼峰命名法
Requests安装
安装requests:pip install requests(注:安装时关闭fiddler)
卸载requests:pip uninstall requests
查看request官方文档:http://www.python-requests.org/en/master/
Python返回内容
--r.status_code #响应状态码
--r.content #字节方式的响应体,会自动为你解码gzip和deflate压缩
--r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
--r.json() #Requests中内置的JSON解码器,json转成python的字典了
--r.url #获取url
--r.encoding #编码格式
--r.cookies #获取返回的cookies
--r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
--r.raise_for_status() #失败请求(非200响应)抛出异常
Python发Get请求,最基本的实例,格式如下:
(注:由于网站更改,该实例已不能运行通过,该实例中仅参考Get请求的基本格式即可。博客园搜索实例请查看 实例:Get请求-博客园搜索)
import requests
url = 'http://zzk-s.cnblogs.com/s/blogpost'
par = {
"Keywords":"test"
}
head = {
"Cookie":"AspxAutoDetectCookieSupport=1111"
}
r = requests.get(url, params=par, headers = head, verify = False) #verify=False, 不去校验证书,默认的是True
print(r.status_code)
print(r.content.decode("utf-8")) #gzip解码,不能用r.text
print(r.headers)
1 import requests 2 import urllib3 3 urllib3.disable_warnings() 4 5 class BoKeYuanSearch(): 6 '''博客园搜索''' 7 def updateCookies(self, s): 8 '''输入关键字搜索,fiddle抓包获取cookies,添加cookies到session, 跳过搜索时的验证码''' 9 cook = requests.cookies.RequestsCookieJar() 10 cook.set("UM_distinctid", "16e552963db123") 11 cook.set(".Cnblogs.AspNetCore.Cookies", "CfDJ8DeHdfdfd") 12 cook.set(".CNBlogsCookie", "8A73D2E75Fdfdfdsfdfdsfdsf") 13 s.cookies.update(cook) 14 def boKeYuanSearch(self, s): 15 '''博客园地址,搜索关键字,用s发请求,session中带上了cookies''' 16 url = 'https://zzk.cnblogs.com/s/blogpost' 17 par = { 18 "w": "testSearch" 19 } 20 r = s.get(url, params=par, verify=False) 21 print(r.status_code) 22 print(r.content.decode("utf-8")) 23 24 if __name__ == "__main__": 25 s = requests.session() 26 print("更新前的cookies: ", s.cookies) 27 search = BoKeYuanSearch() 28 search.updateCookies(s) 29 print("更新后的cookies: ", s.cookies) 30 search.boKeYuanSearch(s)
浙公网安备 33010602011771号