本文目錄一覽:
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:
python爬蟲需要學多久?
完全掌握Python參加培訓需要4-6個月左右,如果單純的入門的話1-2個月左右就差不多了。
Python爬蟲就是使用Pythoni程序開發的網絡爬蟲,是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本,主要用於搜索引擎,它將一個網站的所有內容與鏈接進行閱讀,並建立相關的全文素引到數據庫中,然後跳到另一個網站。
Python開發軟件可根據其用途不同分為兩種,一種是Python代碼編輯器,一種是Python集成開發工具,兩者的配合使用可以極大的提高Python開發人員的編程效率。
python爬蟲如何二次爬取
一般利用用戶的關注人和粉絲人去進行遍歷,而遍歷到下一層的用戶時再去遍歷這個用戶的關注和粉絲列表,這樣利用遞歸函數我們就能夠爬取到大部分用戶的信息。
在我的代碼中,我的主要思路是先把所有用戶的ID放入一個列表,然後遍歷這個列表再分別去收集每個用戶的信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/294156.html