利用python爬虫(part13)--requests模块之requests.get的参数们
學習筆記
requests.get()方法的參數們
查詢參數params
- 語法
requests.get方法在發起請求之前,會先對params查詢參數進行編碼, 編碼后的查詢參數會自動的和base_url進行拼接,拼接成一個完整的url地址后,再向網站發起請求。
- 舉個例子(對兔子吧發起請求,并獲取HTTP響應碼)
代碼:
import requests base_url = 'http://tieba.baidu.com/f?' params = {'kw':'兔子', 'pn':100} headers = {'User-Agent':"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 7.0; InfoPath.3; .NET CLR 3.1.40767; Trident/6.0; en-IN)"} res = requests.get(base_url,params=params,headers=headers) print(res.status_code)輸出:
200 [Finished in 6.0s]Web客戶端驗證參數auth
有的時候,我們訪問一個網站,需要先通過網站的用戶名和密碼驗證,才可以訪問里面的內容。這時,我們就需要設置requests.get方法里的auth參數。
- 語法
證書認證參數verify
介紹這個參數之前,我們闡述一下http協議與https協議。
我們都知道http協議是一個無連接協議(假設我們都知道),而https協議是在http協議的基礎之上加了一個安全套階層協議(SSL)。這表示,我們用https協議傳輸數據時,數據是加密的,在數據傳輸的過程中,我們不用擔心數據被攔截(當數據被某人截取后,某人拿到的是被加密的數據),但是用http協議傳輸數據,則會有很大風險(因為他傳輸的數據沒有經過加密)。
備注1 :無連接的含義是,限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接,采用這種方式可以節省傳輸時間。
備注2 :SSL是Secure Sockets Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。SSL協議標準的目標是保證兩個應用間通信的保密性和可靠性,可在服務器端和用戶端同時實現支持。
現在我們再闡述一下CA證書認證。
為啥要闡述這個?只要因特網服務類型是https的網站,就必須要做CA證書認證,如果不做CA證書認證,那么這個網站就是"不安全"的,并且可能無法正常訪問。為啥不做CA證書認證就是不安全的呢?因為如果不在官方機構不做CA證書認證,那么這個加密過程很可能被"破解",也就是說,即使做了加密,也很容易被盜取信息。
好了,不就是學一個參數么,為啥要了解這些東西???
這是因為,如果我們用python去訪問一個沒有經過CA證書認證的因特網服務類型是https的網站, 那么就會拋出一個SSLError 異常,進而我們就無法正常訪問這個網站。此時!我們就可以通過設置verify參數為False,忽略證書認證,訪問網站。
- 語法
代理IP參數proxies
- 作用
當我們用自己的IP對某個網站進行爬蟲時,如果對方的服務器發現我們是爬蟲,那就有可能會封掉我們的IP, 在一段時間內,我們就不能用我們的IP地址進行網站的訪問了。
但是!如果我們用代理IP去爬取網站,網站封掉的也是代理IP地址,不會封掉我們的IP地址,當代理IP被封掉時,我們就可以換一個代理IP,繼續爬取~嘿嘿嘿。
那么我們如何獲取代理IP地址?去網上搜吧,網上有很多免費的,或者花錢買也行。
還要注意一點,代理IP還分為高匿代理IP和透明代理IP,當我們用高匿代理IP去訪問網站時,對方的web服務器只能看到代理IP的地址,但如果我們用透明代理IP去訪問網站,對方的web服務器不僅能看到代理IP的地址,同時也能看到我們自己的IP地址。
- 語法
這里就不舉代理IP的例子了,因為從十分鐘前到現在(2020年4月11日21:06:43)我還沒有找到能用的免費代理IP(也可能是我自己代碼沒敲好??)。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的利用python爬虫(part13)--requests模块之requests.get的参数们的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小班美工教案《花儿朵朵开》反思
- 下一篇: 连云港十大玩乐中心排行榜:歌友会KTV上