本文目錄一覽:
- 1、python總結-post請求
- 2、python爬蟲使用request發送get和post請求
- 3、Python爬蟲傳送post請求要攜帶哪些參數
- 4、Python爬蟲雜記 – POST之multipart/form-data請求
- 5、Python爬蟲筆記(二)requests模塊get,post,代理
python總結-post請求
一個現象:
很多情況下,我們需要登陸賬號,才能爬取更多的信息。
而我們想要登陸的話,則需要帶上 cookies。
以 ]() 作為爬蟲範例吧。
賬號:spiderman,密碼:crawler334566
這裡又來了一個post請求?
(1)post和get都可以帶著參數請求,不過get請求的參數會在url上顯示出來。
(2)post請求的參數就不會直接顯示,而是隱藏起來。像賬號密碼這種私密的信息,就應該用post的請求。
(3)get請求會應用於獲取網頁數據,比如我們之前學的requests.get()。post請求則應用於向網頁提交數據,比如提交表單類型數據(像賬號密碼就是網頁表單的數據)。
【requests headers】存儲的是瀏覽器的請求信息,【response headers】存儲的是伺服器的響應信息。我們要找的cookies就在其中。
【response headers】里有set cookies的參數。set cookies是什麼意思?就是伺服器往瀏覽器寫入了cookies。
明天接著寫cookies吧,難的地方分多步完成!
python爬蟲使用request發送get和post請求
輸出為一個網頁的 html 代碼;
輸出為一個網頁的 html 代碼;
輸出為一個網頁的 html 代碼;
輸出為一個網頁的 html 代碼;
輸出內容如下:
輸出內容如下:
輸出內容如下:
輸出結果為一個網頁的 html 代碼;
輸出結果如下:
其他的參數和 GET 一樣,直接使用即可,這裡就不再一一舉例了。
輸出信息如下:
剩餘內容請轉至VX公眾號 「運維家」 ,回復 「170」 查看。
—— 「運維家」 ,回復 「170」 ——
—— 「運維家」 ,回復 「170」 ——
—— 「運維家」 ,回復 「170」 ——
linux卸載硬碟,win7共享linux,linuxgdal安裝,Linux7忘記密碼,linux怎麼進入文件的子目錄,高通開源代碼linux,linuxusr大小,重啟伺服器的linux命令,linux的jdk怎麼安裝啊;
linuxtar文件打不開,linux常用狀態檢測,linux成功開機界面,linux七種文件,linux命令,Linux+刪除數據的命令,linux自動監聽重啟伺服器,如何快速擔任linux運維,Linux返回到波浪線,linux大數據架構搭建。
Python爬蟲傳送post請求要攜帶哪些參數
調用requests庫,發送post請求,通過data參數來傳遞
import requests
payload = {‘a’:’楊’,’b’:’hello’}
r = requests.post(“, data=payload)
print r.text
Python爬蟲雜記 – POST之multipart/form-data請求
原以為requests請求十分強大, 但遇到了模擬multipart/form-data類型的post請求, 才發現requests庫還是有一丟丟的不足。 不過也可能是我理解的不足, 還希望讀者老爺不吝指教! 在此感謝!
enctype屬性:
enctype:規定了form表單在發送到伺服器時候編碼方式,它有如下的三個值。
①application/x-www-form-urlencoded:默認的編碼方式。但是在用文本的傳輸和MP3等大型文件的時候,使用這種編碼就顯得 效率低下。
②multipart/form-data:指定傳輸數據為二進位類型,比如圖片、mp3、文件。
③text/plain:純文體的傳輸。空格轉換為 「+」 加號,但不對特殊字元編碼。
值得注意的是:請求頭的Content-Type屬性與其他post請求的不同
總註:上邊這兩種構建參數的方式各有不同, 用起來感覺並不是那麼的靈活,所以感嘆requests有那麼一丟丟丟的不足。值的注意的是,requests.post中files參數接收字典的形式和encode_multipart_formdata中params參數接收字典形式的區別!人生苦短……
Python爬蟲筆記(二)requests模塊get,post,代理
import requests
base_url = ”
response = requests.get(base_url)
url=請求url,
headers =請求頭字典,
params = 請求參數字典。
timeout = 超時時長,
)—-response對象
伺服器響應包含:狀態行(協議,狀態碼)、響應頭,空行,響應正文
字元串格式:response.text
bytes類型:response.content
response.headers[‘cookie’]
response.text獲取到的字元串類型的響應正文,
其實是通過下面的步驟獲取的:
response.text = response.content.decode(response.encoding)
產生的原因:編碼和解碼的編碼格式不一致造成的。
str.encode(‘編碼’)—將字元串按指定編碼解碼成bytes類型
bytes.decode(‘編碼’)—將bytes類型按指定編碼編碼成字元串。
a、response.content.decode(‘頁面正確的編碼格式’)
meta http-equiv=”content-type” content=”text/html;charset=utf-8″
b、找到正確的編碼,設置到response.encoding中
response.encoding = 正確的編碼
response.text—正確的頁面內容。
a、沒有請求參數的情況下,只需要確定url和headers字典。
b、get請求是有請求參數。
在chrome瀏覽器中,下面找query_string_params,
將裡面的參數封裝到params字典中。
c、分頁主要是查看每頁中,請求參數頁碼欄位的變化,
找到變化規律,用for循環就可以做到分頁。
requests.post(
url=請求url,
headers = 請求頭字典,
data=請求數據字典
timeout=超時時長
)—response對象
post請求一般返回數據都是json數據。
(1)response.json()—json字元串所對應的python的list或者dict
(2)用 json 模塊。
json.loads(json_str)—-json_data(python的list或者dict)
json.dumps(json_data)—json_str
post請求能否成功,關鍵看**請求參數**。
如何查找是哪個請求參數在影響數據獲取?
—通過對比,找到變化的參數。
變化參數如何找到參數的生成方式,就是解決這個ajax請求數據獲取的途徑。
**尋找的辦法**有以下幾種:
(1)寫死在頁面。
(2)寫在js中。
(3)請求參數是在之前的一條ajax請求的數據裡面提前獲取好的。
代理形象的說,他是網路信息中轉站。
實際上就是在本機和伺服器之間架了一座橋。
a、突破自身ip訪問現實,可以訪問一些平時訪問不到網站。
b、訪問一些單位或者團體的資源。
c、提高訪問速度。代理的伺服器主要作用就是中轉,
所以一般代理服務裡面都是用內存來進行數據存儲的。
d、隱藏ip。
FTP代理伺服器—21,2121
HTTP代理伺服器—80,8080
SSL/TLS代理:主要用訪問加密網站。埠:443
telnet代理 :主要用telnet遠程控制,埠一般為23
高度匿名代理:數據包會原封不動轉化,在服務段看來,就好像一個普通用戶在訪問,做到完全隱藏ip。
普通匿名代理:數據包會做一些改動,伺服器有可能找到原ip。
透明代理:不但改動數據,還會告訴服務,是誰訪問的。
間諜代理:指組織或者個人用於記錄用戶傳輸數據,然後進行研究,監控等目的的代理。
proxies = {
‘代理伺服器的類型’:’代理ip’
}
response = requests.get(proxies = proxies)
代理伺服器的類型:http,https,ftp
代理ip:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/253058.html