關於Requests與Json的使用小結

前言

在學習Scrapy爬蟲的過程中,發現需要總結一些東西來避免自己遺忘。這是鹹魚的第19篇原創。

requests小結

requestse基本使用

關於requests基本使用方法參照中文版參考文檔: http://docs.python-requests.org/zh_CN/latest/index.html

response.text 和response.content的區別

<code>response.text類型:str解碼類型: 根據HTTP 頭部對響應的編碼作出有根據的推測,推測的文本編碼如何修改編碼方式:response.encoding=”gbk”response.content類型:bytes解碼類型:沒有指定如何修改編碼方式:response.content.deocde(“utf8”)更推薦使用response.content.deocde()的方式獲取響應的html頁面複製代碼/<code>

requests使用代理

<code>requests.get("http://www.baidu.com", proxies = proxies)proxies = {     "http": "http://12.34.56.79:9527",     "https": "https://12.34.56.79:9527",     }複製代碼/<code>

代理的基本原理

Python | 關於Requests與Json的使用小結

代理的基本原理

正向代理與反向代理

正向代理:瀏覽器明確知道要訪問的是什麼服務器,只不過目前無法達到,需要通過代理來幫助完成這個請求操作。

反向代理:瀏覽器不知道任何關於要請求的服務器的信息,需要通過Nginx請求。

Python | 關於Requests與Json的使用小結

requests模擬登錄的3種方法

  1. 實例化session,使用session發送post/get請求登錄後的頁面
<code>session = requests.session()response = session.get(url,headers)複製代碼/<code>
  1. 在headers中添加cookie鍵,值為cookie字符串
  2. 在請求方法中添加cookie參數,接收字典形式的cookie

cookie和session區別

  1. cookie數據存放在客戶的瀏覽器上,session數據放在服務器上
  2. cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙
  3. session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能
  4. 單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie

requests的幾個小技巧(我認為的)

<code>#把cookie對象轉化為字典reqeusts.util.dict_from_cookiejar  #把字典轉化為cookie對象reqeusts.util.cookiejar_from_dict#url解碼reqeusts.util.unquote() #url編碼reqeusts.util.quote()  #忽略SSL證書驗證response = requests.get("https://www.12306.cn/mormhweb/ ", verify=False)  #請求https的網站忽略SSL證書驗證之後還是會出現警告信息,在請求前加上下面這句就可以禁用安全請求警告#InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning)requests.packages.urllib3.disable_warnings()複製代碼/<code> 

json小結

json的基本使用

<code>json.loads() #json字符串轉化為python數據類型json.dumps() #python數據類型轉化為json字符串json.load()  #包含json的類文件對象轉化為python數據類型json.dump()  #python數據類型轉化為包含json的類文件對象複製代碼/<code>

什麼是類文件對象?

具有read()或者write()方法的對象就是類文件對象, f =open(‘a.txt’,‘r’) f 就是類文件對象

如何優雅的查看json?

json文件出現中文亂碼: ensure_ascii=False json、字典格式化輸出: indent=2 json格式化打印: 使用pprint 使用前需要 pip install pprint 安裝

Python | 關於Requests與Json的使用小結

pprint效果圖


分享到:


相關文章: