你是無意穿堂風 偏偏孤倨引山洪
1進度
安裝 requests
conda install requests
http://www.python-requests.org/en/master/
# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.text)
requests 庫7個主要方法:
requests 庫7個主要方法
requests - get()
r = requests.get(url)
r = requests.get("http://www.mi.com")
get()1
get()2
get()3
requests庫
response 對象的屬性:
response 對象的屬性
status_code
理解response的編碼:
理解response的編碼
爬取網頁的通用代碼框架:
- 網絡連接有風險
- 異常處理很重要
理解Requests庫的異常:
Requests庫的異常1
Requests庫的異常2
# -*- coding: utf-8 -*-
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "產生異常"
if __name__ == "__main__":
url = "http://www.mi.com"
print(getHTMLText(url))
HTTP協議及Requests庫方法:
Http協議:
Http協議
url
url
Http協議對資源的操作:
Http協議對資源的操作1
Http協議對資源的操作2
http協議通過url對資源定位 通過以上6個操作方法對資源進行管理 每次操作都是獨立無狀態的(兩次操作間沒有關系)
區別
Requests庫的head():
# -*- coding: utf-8 -*-
import requests
r = requests.get("http://www.mi.com")
print(r.status_code)
r.encoding = 'utf-8'
print(r.headers)
Requests庫的post():
post()
# -*- coding: utf-8 -*-
import requests
payload = {'key1':'value1', 'key2':'value2'}
r = requests.post('http://httpbin.org/post', data=payload)
print(r.text)
print:
{
"args": {},
"data": "",
"files": {},
"form": {
"key1": "value1",
"key2": "value2"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "23",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.14.2"
},
"json": null,
"origin": "43.247.4.53",
"url": "http://httpbin.org/post"
}
data
Requests庫的put():
put()
Requests庫主要方法解析:
主要方法解析
0
1
2
3
4
5
6
7
8
9
10
get最常用!
get()
head()
post()
put()
patch()
delete()
小結:
庫入門
框架
世界上所有的追求都是因為熱愛
一枚愛編碼 愛生活 愛分享的IT信徒
— hongXkeX