爬蟲 Requests 庫的入門學習

2021-08-31 11:39:24 字數 3497 閱讀 1788

此為北理嵩天老師mooc課程【網路爬蟲與資訊提取】的課程學習筆記,附帶一些其他書籍部落格的資料。

使用命令列輸入:

pip install requests
或者:

python -m pip install requests
方法名稱

說明requests.request()

最基礎的,構造請求,支撐其他方法的使用

.get()

獲取 html 網頁的主要方法,對應get

.head()

獲取html網頁頭資訊,對應head

.post()

向html網頁提交post請求

.put()

向網頁提交put請求

.patch

向網頁提交區域性修改的請求

.delete()

向網頁提交刪除的請求

requests.requests()為基礎方法

request.requests(method, url, **kwargs)
具體說明可以轉到函式定義去檢視。

獲取資料可以使用head和get, head方法獲取的資訊頭部、即為摘要。get為全部資訊,內容詳細

傳送修改可以使用post、patch、put等方法。

r = requests.post(url,data = 「」abc「」)
patch 和 put的區別在於patch可以只提交需要更新的資料,而put需要將所有字段資料重新提交,不更改的會被刪除。

post向url內容新增指定的表單、data等

r = requests.post(url,data = '字串"或字典鍵值對等)
構造向伺服器請求資源的requests物件,返回的的為response物件,包含各種資訊。

requests.get(url, params=none, **kwargs)
屬性名稱

說明r.status_code

http 請求的返回狀態,200成,404或其他為失敗。

r.text

http相應內容的字串形式,url的頁面內容

r.encoding

從http的header中猜測的內容編碼方式,一般不含中文

從內容中分析出相應內容的編碼方式,便於解析出中文

r.content

http相應內容的二進位制形式

連線異常

常用的requests庫的異常,注意不是函式,無()

異常內容

說明requests.connectionerror

網路連線異常,dns查詢失敗,伺服器防火牆拒絕連線

http錯誤異常

requests.urlrequired

url缺失異常

requests.toomanyredirects

使用者訪問url重定向次數過多

requests.connecttimeout

僅指與遠端伺服器連線時的超時異常

requests.timeout

發起到獲得url整個過程的超時異常

判斷返回的response型別的狀態是不是200,如果返回的不是200說明有錯誤,在程式中產生requests.httperror異常

r.raise_for_status()
爬取網頁的通用**框架:

import requests

def gethtmltext(url):

try:

r = requests.get(url , timeout=30)

r.raise_for_status()

return r.text

except:

return "產生異常"

if __name__ == "__main__":

url = ""

print(gethtmltext(url))

爬取網頁時**可以通過robots.txt和識別requests請求的header規範、約束爬蟲訪問。所以有些**會識別你的requests請求,如果其中的headers為python相關時可能報錯、無法獲取資訊。此時人為構造鍵值對,改變使用者屬性

狀態碼503 說明訪問異常。

修改user-agent 模擬為瀏覽器身份表示。加入到原來headers中,再去訪問。

kv = 

url = ""

r = requests.get(url, headers = kv)

r.status_code

#輸出200,表示成功

import requests

keyword = "csdn"

try:

kv =

r = requests.get("",params=kv)

print(r.request.url)

r.raise_for_status()

print(len(r.text))

#輸出檢索到的內容位元組長度

except:

print("產生異常")

爬取網頁上的一張,並儲存在電腦指定路徑內。

爬取一張帥氣的哈士奇美照。

不知道為什麼我在設定儲存的檔案路徑時檔案夾層數過多就會爬取失敗,如果有大神了解原因,還望不吝賜教。

import requests

import os

url = ""

root = "e://pyrelat//"

#路徑檔案夾層數再多一點時就報錯爬取失敗

path = root + url.split("/")[-1]

try:

if not os.path.exists(root):

os.mkdir(root)

if not os.path.exists(path):

kv =

r = requests.get(url, headers = kv)

with open(path, "wb") as f:

f.write(r.content)

f.close()

print("檔案儲存成功")

else:

print("檔案已經存在")

except:

print("爬取失敗")

爬蟲入門 Requests庫

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

Python 爬蟲 Requests庫入門

headers 字典,http定製頭 hd r requests.request post headers hd timeout 設定超時時間,秒為單位 r requests.request get timeout 10 proxies 字典型別,設定訪問 伺服器,可以增加登入認證 pxs r re...

簡單的爬蟲入門,requests庫

網路爬蟲,可以認為是 模擬瀏覽器自動瀏覽網頁 99 都是 一段程式,乙個指令碼 自動批量採集我們需要的各種資源 文字 主要方法 requests.request 構造乙個請求,支撐一下各方法的基礎方法 requests.get 獲取html網頁的主要方法,對應於http中的get requests....