日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用python爬虫(part13)--requests模块之requests.get的参数们

發布時間:2023/12/19 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用python爬虫(part13)--requests模块之requests.get的参数们 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記


requests.get()方法的參數們


查詢參數params


  • 語法
params = {'查詢參數':'查詢參數值'} res = requests.get(base_url,params=params,headers=headers) #base_url為不包含查詢參數的基本url #params的參數值為字典類型,字典中鍵值對作為查詢參數 #比如:{'kw':'兔子', 'pn':100}

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參數。

  • 語法
auth = ('username','password') res = requests.get(url,auth=auth,headers=headers) #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,忽略證書認證,訪問網站。


  • 語法
res = requests.get(url,headers=headers,verify=False); #verify默認為True

代理IP參數proxies


  • 作用

當我們用自己的IP對某個網站進行爬蟲時,如果對方的服務器發現我們是爬蟲,那就有可能會封掉我們的IP, 在一段時間內,我們就不能用我們的IP地址進行網站的訪問了。

但是!如果我們用代理IP去爬取網站,網站封掉的也是代理IP地址,不會封掉我們的IP地址,當代理IP被封掉時,我們就可以換一個代理IP,繼續爬取~嘿嘿嘿。

那么我們如何獲取代理IP地址?去網上搜吧,網上有很多免費的,或者花錢買也行。

還要注意一點,代理IP還分為高匿代理IP和透明代理IP,當我們用高匿代理IP去訪問網站時,對方的web服務器只能看到代理IP的地址,但如果我們用透明代理IP去訪問網站,對方的web服務器不僅能看到代理IP的地址,同時也能看到我們自己的IP地址。


  • 語法
proxies = {'協議':'協議://IP:端口號'} #比如:proxies = {'http':'http://IP:端口號'} #再比如:proxies = {'https':'https://IP:端口號'} res = requests.get(url,proxies=proxies,headers=headers);

這里就不舉代理IP的例子了,因為從十分鐘前到現在(2020年4月11日21:06:43)我還沒有找到能用的免費代理IP(也可能是我自己代碼沒敲好??)。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的利用python爬虫(part13)--requests模块之requests.get的参数们的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。