標籤:file 共用 指定 資料 一個 信任 alt org use
requests庫get請求:
1.通過requests.get()來調用:
req = requests.get("http://www.baidu.com/")
2.添加header和查詢參數:
如傳入參數的get請求:
import requestsurl = ‘https://www.baidu.com/s‘kw = { ‘wd‘:‘中國‘}headers = { ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘}#params接收一個字典或者字串的查詢參數,字典類型自動轉換為url編碼,不需要urlencode()response = requests.get(url=url,params=kw,headers=headers)print(response.text)
查詢參數:
print(response.text) #返回Unicode格式的資料(str)print(response.content) #返回位元組流資料(bytes)print(response.url) #查看完整url地址print(response.encoding) #查看回應標頭部字元編碼print(response.status_code) #查看響應碼
response.text和response.content的區別:
1.response.content:這個是直接從網路上面抓取的資料。沒有經過任何解碼。所以是一個bytes類型。其實在硬碟上和在網路上傳輸的字串部是bytes類型。
2.response.text:這個是str的資料類型,將response.content進行解碼的字串。解碼需要指定一個編碼方式,requests會根據自己的猜測來判斷編碼的方式。所以有時候可能會猜測錯誤,就會導致解碼產生亂碼。這時候就應該使用”response.content.decode(‘utf-8‘)或者更多進行手動解碼。
post請求:
1.基本post要求方法:
response = requests.post(‘https://www.baidu.com/‘,data=data)
2.傳入data資料:
import requestsdata = { ‘name‘:‘tom‘,‘age‘:‘22‘}response = requests.post(‘http://httpbin.org/post‘, data=data)
print(response.text)
#print(response.json()) #輸出為字典類型資料使用代理:
使用requests 添加代理也非常簡單,只要在請求的方法中(比如get或者post)傳遞proxies參數就可以了。
import requestsurl = ‘http://bj.xiaozhu.com/search-duanzufang-p{}-0/‘headers = { ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘, ‘Referer‘:‘http://bj.xiaozhu.com/search-duanzufang-p{}-0/‘}proxy = { ‘http‘:‘121.232.194.147:9000‘} #Proxy 伺服器response = requests.get(url=url,proxies=proxy,headers=headers)with open(‘xiaozhu.html‘,‘w‘,encoding=‘utf-8‘) as fp: #儲存 fp.write(response.text)print(response.text) cookie:
如果在一個響應中包含了cookie,那麼可以利用 cookies屬性拿到這個返回的cookie值:
#擷取cookieimport requestsresponse = requests.get(‘http://www.baidu.com‘)print(response.cookies)print(type(response.cookies))for k,v in response.cookies.items(): #.items() 遍曆字典列表 print(k+‘:‘+v)
session:
會話對象。(使用多次請求中共用cookie)
requests庫的session對象能夠幫我們跨請求保持某些參數,也會在同一個session執行個體發出的所有請求之間保持cookies。
import requestsurl = ‘http://www.renren.com/SysHome.do‘data = { "email":"[email protected]", "password":"*******"}headers = { ‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36‘}#登入session = requests.session()session.post(url=url,data=data,headers=headers)#訪問**個人中心resp = session.get(‘http://www.renren.com/968214405/profile‘)print(resp.text)
處理不信任的SSL信任的認證:
import requestsresp = requests.get("http://www.12386.cn/morshweb/", verify=False) #verify=False #意思是不需要驗證ssl認證print(resp.content.decode("utf-8"))
requests庫基本使用