requests是在urllib的基礎上進一步封裝的,具備urllib的所有功能。安裝
http的常用請求是get和post。
get請求
get請求又兩種形式,帶引數和不帶引數。
#不帶引數
#帶引數
s?wd=python
一般**末端帶有「?」表示帶引數,反之,則不帶引數
get引數說明
帶引數的url的兩種請求方式
import requests
#第一種方式
)#第二種方式
#左邊params在get請求中表示設定引數
r = requests.get(url, params=params)
#輸出生成的url
print
(r.url)
動態設定url引數
post請求
即提交表單,表單的資料內容就是post的請求引數。
request實現post請求需設定請求引數data,資料格式可以為字典、元組、列表和json格式
import requests
# 字典型別
data =
# 元組或列表((
'key1'
,'value1'),
('key1'
,'value2'))
# json
import json
data =
# 將字典轉換json
data=json.dumps(data)
# 傳送post請求
(r.text)
新增請求頭
請求頭以字典形式生成,然後傳送請求中設定的headers引數,指向已定義的請求頭
, headers=headers)使用**ip
import requests
, proxies=proxies)
證書驗證
通常設定關閉。請求設定引數verify=false即可關閉證書驗證,預設情況下是true。若要設定證書檔案,可設定引數verify值為證書路徑。
import requests
url =
''# 關閉證書驗證
r = requests.get(url, verify=
false
)print
(r.status_code)
# 開啟證書驗證
# r = requests.get(url, verify=true)
# 設定證書所在路徑
# r = requests.get(url, verify= '/path/to/certfile')
超時設定
若不想程式等待時間過長或者延長等待時間,可以設定timeout的等待秒數。
)使用cookies
cookies用來標識使用者身份,在requests中以字典或requestscookiejar物件作為引數。獲取方式主要是從瀏覽器讀取和程式執行所產生。
import requests
temp_cookies=
'jsessionid_gds=y4p7osfr_iyv5udyd6c1drwe8metpqn0y58tg8cconvp020y2n!450649273;name=value'
cookies_dict =
for i in temp_cookies.split(
';')
: value = i.split(
'=')
cookies_dict [value[0]
]= value[1]
r = requests.get(url, cookies=cookies)
print
(r.text)
temp_cookies是cookies資訊,可在chrome開發者工具→network→某請求的headers→request headers中找到cookie對應的值。隨後將字串轉換成字典格式。
轉換規則:
以「;」分割,得到列表a
以「="分割,得到字典的鍵值對
當程式傳送請求時,(不設定引數cookies),自動生成乙個requestcookiejar物件,該物件用於存放cookies資訊。requests提供requestcookiejar物件和字典物件相互轉換,**如下:
import requests
url =
''r = requests.get(url)
# r.cookies是requestscookiejar物件
print
(r.cookies)
mycookies = r.cookies
# requestscookiejar轉換字典
cookies_dict = requests.utils.dict_from_cookiejar(mycookies)
print
(cookies_dict)
# 字典轉換requestscookiejar
cookies_jar = requests.utils.cookiejar_from_dict(cookies_dict, cookiejar=
none
, overwrite=
true
)print
(cookies_jar)
# 在requestscookiejar物件新增cookies字典中
print
(requests.utils.add_dict_to_cookiejar(mycookies, cookies_dict)
)
如果要將cookies寫入檔案,可使用http模組實現cookies的讀寫。除此之外,還可以將cookies以字典形式寫入檔案,此方法相比http模組讀寫更簡單,但安全性較低。使用方法如下:
import requests
url =
''r = requests.get(url)
# requestscookiejar轉換字典
cookies_dict = requests.utils.dict_from_cookiejar(mycookies)
# 寫入檔案
f =open
('cookies.txt'
,'w'
, encoding=
'utf-8'
)f.write(
str(cookies_dict)
)f.close(
)# 讀取檔案
f =open
('cookies.txt'
,'r'
)dict_value = f.read(
)f.close(
)# eval(dict_value)將字串轉換字典
print
(eval
(dict_value)
)r = requests.get(url, cookies=
eval
(dict_value)
)print
(r.status_code)
網路資料請求request
2.基於httpwebrequest 的get post方法 關於網路資料請求的類很多,httpwebrequest,webrequest,webclient以及httpclient,具體差別在此不在贅述,在應用方面介紹webclient與httpclient則顯得比較比較簡單粗暴,httpwebr...
Jsoup抓取資料
首先我們來看來自 的乙個html片段,了解其結構。class detail style display block class add jrsj plus bookid 609737 em class mark63 href target blank src alt 不死龍帝 style width...
Xmind Java資料抓取
思路 1,登入。2,登入成功後獲得cookie。3,將cookie放到請求頭中,向登入頁傳送請求。1.獲得url物件 url url newurl urlstring 2.開啟連線 3.向request中注入cookie urlconn.setrequestproperty cookie cooki...