常見異常:
response 返回所有的網頁內容
r.raise_for_status() 如果不是200,產生異常requests.httperror
import requests
def gethtmltext(url):
try:
r = requests.get(url, timeout=30)
r.raies_for_status() # 狀態不是200 ,引發httperror
return r.text
except:
return "產生異常"
if_name_ == "_main_":
url = ""
print(gethtmltext(url))
requests.request(method,url,**kwargs)
method: 請求方式,對應get/put/post等7種**kwargs:控制訪問的引數,均為可選項url: 擬獲取頁面的url鏈結
**kwargs: 控制訪問的引數,共13個
eg.
r=requests.request('get',url,**kwargs)
r=requests.request('options',url,**kwargs)
獲取伺服器客戶端引數
星號開頭表示可選,需要命名呼叫
params:字典或位元組序列,作為引數增加到url中
kv=
r=requests.request(『get』,』 params=kv)
print(r.url)
data:字典、位元組序列或檔案物件,作為request的內容
kv=
r=requests.request(『get』,』 params=kv)
body = 『主體內容』
r = requests.request(『post』,』data=body)
json:json格式的資料,作為request的內容
kv=
r=requests.request(『post』,』 json=kv)
headers:字典,http定製頭
hd = 瀏覽器版本
r = requests.request(『post』, 『 headers=hd)
高階功能
5.cookies: 字典或cookiejar,request中的cookie
6.auth:元組,支援http認證功能
7. files: 字典型別,傳輸檔案
fs =
r = requests.request(『post』,』 files=fs)
8. timeout: 設定超時時間,秒為單位
r = requests.request(『get』,』『, timeout=10)
9. proxies: 字典型別,設定訪問**伺服器,可以增加登入認證
**ip,防止逆追蹤
10.allow_redirects: true/false, 預設為true,重定向開關
12.verify: true/false,預設為true,認證ssl證書開關
13. cert:本地ssl證書路徑
requests.get(url,params=none,**kwargs)
最常用requests.post(url,data=none,json=none,**kwargs)
url:擬更新頁面的url鏈結
data:字典、位元組序列或檔案,request的內容
json:json格式的資料,request的內容
**kwargs:11個控制訪問的引數
requests.put(url,data=none,**kwargs)
url:擬更新頁面的url鏈結
data:字典、位元組序列或檔案,request的內容
**kwargs:12個控制訪問的引數
get 請求獲取url位置的資源
head 請求獲取url為止資源的響應資訊報告,即獲得該資源的頭部資訊
用很少的網路流量獲取網路資源的概要資訊
r = requests.head('')
r.headers
...
r.text
post 請求獲取url位置的資源後附加新的資料,不改變現有內容
向url post乙個字典自動編碼為form(表單)
payload =
r = requests.post('', data = payload)
print(r.text)
,
}
向url post乙個字串自動編碼為data
r = quests.post('',data = 'abc')
print(r.text)
,
}
put 請求向url位置儲存乙個資源,覆蓋原url位置的資源
payload =
r = requests.put('', data = payload)
print(r.text)
,
}
patch 請求**區域性更新**url位置的資源,即改變該處資源的部分內容
delete 請求刪除url位置儲存的資源
雲端→使用者:get head
使用者→雲端: put post patch delete
假設url位置有一組資料userinfo(包括userid username)等http協議:需求:使用者修改username,其他不變
採用patch 僅向url提交username的區域性更新
採用put 必須將所有20欄位一併提交
http,hypertext transfer protocol,超文字傳輸協議
http是基於「請求與響應」模式的、無狀態的應用層協議。
採用url作為定位網路資源的標識,url是通過http協議訪問資源的internet路徑。url對應乙個資料資源。
• 介紹robots.txt協議
• 爬蟲例項
由於網路安全限制,很難向url發起put patch delete
最常用:get 特別大的:head 來獲得概要
import requests
def gethtmltext(url):
try:
r = requests.get(url, timeout=30)
r.raies_for_status() # 狀態不是200 ,引發httperror
return r.text
except:
return "產生異常"
if_name_ == "_main_":
url = ""
print(gethtmltext(url))
網路連線有風險 異常處理很重要 :d MOOC Python語言基礎與應用
容器型別 字典 dict 貼標籤的資料 標籤收納盒 給資料貼上標籤,就可以通過具有特定含義的名字或者別的記號來獲取資料。現實生活中的字典 通過標籤 或者關鍵字 來索引資料,區別於列表或元組通過連續的整數來索引 ps 注意區別 標籤 key 和資料值 value 字典容器中儲存著一系列的key val...
網路爬蟲(1) 爬蟲與HTTP
聚焦爬蟲 聚焦爬蟲是根據指定的需求抓取網路上指定的資料。例如 獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的資料值。增量式爬蟲 增量式是用來檢測 資料更新的情況,且可以將 更新的資料進行爬取 後期會有章節單獨對其展開詳細的講解 即 有權規定 中哪些內容可以被爬蟲抓取,哪些內容不可以被爬蟲抓取...
mooc python網路資訊獲取第一周
一 環境 idle,subline text,pycharm,anaconda spyder。二 requests庫 1.安裝 cmd pip install requests 2.七方法 requests.request method,url kwarge 構造請求支撐以下各種方法的基礎方法,me...