python爬蟲之requests庫

2022-03-13 00:55:44 字數 1548 閱讀 7852

在python爬蟲中,要想獲取url的原網頁,就要用到眾所周知的強大好用的requests庫,在2023年python文件年度總結中,requests庫使用率排行第一,接下來就開始簡單的使用requests庫吧.

在window環境下,推薦是用pip進行安裝,因為便捷而且不用考慮檔案的解壓路徑:

pip install requests
首先requests有文件說明,requests文件 多觀察庫文件,有利於我們了解該庫建立者的意圖,現在可以嘗試使用requests庫獲取乙個網頁的源**了:**如下

import

requests

url='

'response=requests.get(url)

print(respones.text)

requests code

但是為了更好獲取源**,還需要對該**進行一定的優化,比如是否考慮statue_code==200,響應碼是否正常,正常還可以請求該網頁,否則返回錯誤原因,**如下:

import

requests

defget_page():

try:

url="

"response=requests.get(url)

if response.status_code==200:

return

response.text

except

requests.connectionerror:

return

none

get_page()

requests codes

運用了get_page的函式,對requests的方法進行優化,最後還可以新增main函式進行列印輸出

def

main():

data=get_page()

print

(data)

if__name__ == "

__main__":

main()

進行如下

這樣就可以簡單的獲取網頁的源**了,但是在現實過程中,網頁是經過js渲染的,即可以理解為該html只是個空體,只是引用了某個js文字,這樣就會造成requests請求的源**出現錯誤,造成後期抓不到想要的資料,不過沒有關係,f12提供了強大的抓包工具,無論是ajax或者是直接js渲染的網頁,我們都有相應的解決方法,例如利用selenium庫進行自動化執行,抑或是xhr檔案裡的json字典格式化儲存,都是可以解決這些問題的.

關於requests庫還有許多引數沒用上,比如proxies(**,抓取數量過大時會導致該請求**對我們的ip進行封禁,導致304請求失敗),headers(頭請求),現在許多網頁會設定反爬蟲設定,如果你不加請求頭的話,伺服器是不會返回任何資訊給你的,但是requests庫為你提供了偽裝瀏覽器的方法,運用user-agent;host等運用字典新增進去,更容易獲取我們想要的資訊.更多方法可以參考上面的requests文件.

Python爬蟲 HTTP協議 Requests庫

http協議 http hypertext transfer protocol 即超文字傳輸協議。url是通過http協議訪問資源的internet路徑,乙個url對應乙個資料資源。http協議對資源的操作 requests庫提供了http所有的基本請求方式。官方介紹 requests庫的6個主要方...

python 爬蟲系列02 認識 requests

本系列所有文章基於 python3.5.2 requests 是基於 urllib 的三方模組,相比於 uillib,操作更簡潔,功能更強大,而且支援 python3 getimport requests r requests.get url print r.status code print r....

python小白學習記錄 爬蟲requests篇

一 引用庫 import requests 二 請求訪問url,網頁相應 res requests.get 網頁位址 三 表明返回內容 目前返回的response物件有四種屬性 status code 檢查請求是否成功 content 將資料轉換為二進位制資料 text 將資料轉換為字串型資料 en...