5 爬蟲 requests庫講解 高階用法

2022-08-04 11:00:12 字數 4103 閱讀 6265

0.檔案上傳

import

requests

files =

response = requests.post("

", files=files)

print(response.text)

1.獲取cookies

import

requests

response = requests.get("

")print

(response.cookies)

for key, value in

response.cookies.items():

print(key + '

=' + value)

2.會話維持

import

requests

requests.get(

'')response = requests.get('

')print(response.text)

*可以通過對這個**設定個cookies

輸出結果如下:

}

為空?!因為兩次get請求,實際上相當於你用兩個瀏覽器開啟了不同的網頁。用session()方法試試?

import

requests

s =requests.session()

s.get(

'')response = s.get('

')print(response.text)

輸出結果如下:

}

* 用session()我們實現了維持會話登陸模擬登陸(即用於模擬在乙個瀏覽器中開啟同一站點的不同頁面)

3.證書驗證

import

requests

response = requests.get('

')print

(response.status_code)

# 提示出現sslerror表示證書驗證錯誤

#######################

#去除警告

import

requests

from requests.packages import

urllib3

urllib3.disable_warnings()

response = requests.get('

', verify=false)

print

(response.status_code)

#######################

#指定乙個本地證書用作客戶端

證書import

requests

response = requests.get('

', cert=('

/path/server.crt

', '

/path/key'))

print(respo

nse.status_code)

4.**設定

#

無密碼的

import

requests

proxies =

response = requests.get("

", proxies=proxies)

print

(response.status_code)

##############################

#有密碼的

import

requests

proxies =

response = requests.get("

", proxies=proxies)

print

(response.status_code)

##############################

#**不支援http,支援sockes

#pip3 install 'requests[socks]'

import

requests

proxies =

response = requests.get("

", proxies=proxies)

print(response.status_code)

5.超時設定

import

requests

from requests.exceptions import

readtimeout

try:

response = requests.get("

", timeout = 0.5)

print

(response.status_code)

except

readtimeout:

print('

timeout

')

*timeout = (5,30) 5是連線超時時間 30是讀取超時時間

*timeout = 35 35是連線和讀取兩者之和

*timeout = none 或者我不設定 代表永久等待

6.認證設定

))#還可以像下面這樣寫 簡單些(預設使用httpbasicauth這個類來認證 當然這個**訪問不了的)

#r = requests.get('', auth=('user', '123'))

print(r.status_code)

7.異常處理

import

requests

from requests import

readtimeout, connectionerror, requestexception

try:

response = requests.get("

", timeout = 0.5)

print

(response.status_code)

except

readtimeout:

print('

timeout')

except

connectionerror:

print('

connection error')

except

requestexception:

print('

error

')

*可以去requests庫的官方文件,找到api,再看裡面的異常!!

8.prepared request

*在urllib裡,可以將請求表示為資料結構,其餘各個引數都可以通過乙個request物件來表示.

*在requests裡,用prepared request同樣可以做到!

from requests import

request,session

url = "

..."

data =

headers =

s =session()

req = request('

post

',url,data = data,headers =headers)

prepped =s.prepare_request(req)

r =s.send(prepped)

print(r.text)

*在這裡,我們引入request,然後用url、data、headers引數構造了乙個requests物件,這時候呼叫session的prepare_request()方法將其轉換為乙個prepared request物件,然後再呼叫send方法傳送即可。

*有了這個requests物件,就可以將請求當作獨立的物件來看待,這樣在進行佇列排程時會非常方便。

爬蟲入門 Requests庫

首先用管理員許可權開啟cmd命令列,然後直接輸入 pip install requests,即可安裝成功 需要聯網 方法 作用requests.request 構造乙個請求,它是支撐以下方法的基礎方法 requests.get 獲取html網頁的主要方法,請求獲取url位置的資源 requests....

資料爬蟲 requests庫

import requests response requests.get 模擬瀏覽器,欺騙瀏覽器,獲取和瀏覽器一致的內容。url headers requests.get url,headers headers url問號後面的就是請求引數,也叫查詢字串。kw response requests....

爬蟲之Requests庫

處理cookie 雖然python的標準庫中urllib模組已經包含我們平常使用的大多數功能,但是它的api使用起來讓人感覺不太好,而requests使用起來更加方便 利用pip 可以非常方便安裝 pip install requests最簡單的傳送get請求的方式就是通過requests.get呼...