官網文件–
傳送get,post請求
#post請求
import requests
url=""
data=#該字典鍵值對的形式可以通過form data中查詢
headers=
res=requests.post(url,data=data,headers=headers)
print(res.text)
response方法res.content.decode(『utf-8』)#或者』gbk』
res.json() #針對響應為json字串解碼為python字典
res.request.url #傳送請求的url位址
res.url #res響應的url位址(頁面跳轉時,請求的url位址與真正開啟的url位址是不同的)
res.request.headers #請求頭
res.headers #res響應頭
傳送帶有header的請求headers=#user-agent>>>referer>>cookie
-為了模擬瀏覽器,獲取和瀏覽器一樣的內容
超時引數 timeoutrequests.get(url,headers=headers,timeout=3) #3秒內必須返回響應,否則會報錯
一般為了避免再發出請求過程中出現異常而中斷請求,一般採用retrying中的retry函式(作為裝飾器呼叫)
from retrying import retry
import requests
@retry(stop_max_attempt_number=3) #讓被裝飾的函式反覆執行三次,三次全部報錯才會報錯;中間有一次正常,程式繼續執行
def_parse_url
(url):
print("列印效果")
headers=
res=requests.get(url,headers=headers,timeout=5)
# print(res.content.decode('utf-8'))
print(res.status_code)
#增加異常處理
defparse_url
(url):
try:
html_str=_parse_url(url)
except:
html_str=none
return html_str
if __name__ == '__main__':
url = ''
parse_url(url)
處理cookie請求
#爬去人人網資訊
#方法1--沒有cookie的html資訊
import requests
url=""
headers=
res=requests.get(url,headers=headers,timeout=5)
with
open('renren1.html','w',encoding='utf-8') as f:
f.write(res.content.decode())
#方法2---在headers中放入cookie(在html中nx.user會出現使用者名稱)
import requests
url=""
headers=
res=requests.get(url,headers=headers,timeout=5)
with
open('renren2.html','w',encoding='utf-8') as f:
f.write(res.content.decode())
#方法3--requests.session方法
import requests
session=requests.session()#例項化session
post_url=""
#此處的url位址是form表單中action的位址
headers=
post_data=
session.post(url,headers=headers,data=post_data)#使用session傳送post請求,獲取儲存在本地的cookie
url=""
#次數的url是登陸頁面的url
res=session.get(url,headers=headers)#使用session,請求登陸後的頁面
with
open('renren3.html','w',encoding='utf-8') as f:
f.write(res.content.decode())
上傳檔案 files
import requests
#建立files檔案字典
dict_files=
response=requests.post("",files=dict_files)
print(response.text)
證書認證 (12306證書認證)
#方法1---設定verify=false,並取消提示警告
import requests
from requests.packages import urllib3
urllib3.disable_warnings()
res=requests.get("",verify=false)
print(res.status_code)
#方法2--通過cert引數放入證書路徑
res=requests.get("",cert='path')
設定**
import requests
my_proxies=
res=requests.get("",proxies=my_proxies)
print(res.text)
異常處理
requests的異常都在requests.exceptions中
import requests
from requests.exceptions import readtimeout,connectionerror,requestexception
try:
res=requests.get("",timeout=0.1)
print(res.status_code)
except readtimeout:
print("timeout")
except connectionerror:
print("timeout")
except requestexception:
print("error")
爬蟲基礎之Requests庫入門
import requests r requests.get r.status code r.encoding utf 8 r.text方法 說明requests.request 構造乙個請求,支援以下各方法的基礎方法 requests.get 獲取html網頁的主要方法,對應http的get re...
爬蟲 Requests庫基礎知識
4.requests庫的異常 5.爬蟲通用 框架 6.url格式 方法說明 requests.get 獲取html網頁 requests.head 獲取html網頁頭資訊 requests.post 向html網頁提交post請求 requests.put 向html網頁提交put請求 reques...
Python爬蟲requests基礎
import requests url data headers proxies 加密 proxies cookies files get res request.get url,params data,headers headers,proxies proxies,cookies cookies ...