python爬蟲 (2)爬蟲基本流程

2021-08-17 08:58:15 字數 2260 閱讀 4533

網路爬蟲(又被稱為網頁蜘蛛,網路機械人,在foaf社群中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻、自動索引、模擬程式或者蠕蟲。

其實通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料

模擬瀏覽器開啟網頁,獲取網頁中我們想要的那部分資料

瀏覽器開啟網頁的過程:

當你在瀏覽器中輸入位址後,經過dns伺服器找到伺服器主機,向伺服器傳送乙個請求,伺服器經過解析後傳送給使用者瀏覽器結果,包括html,js,css等檔案內容,瀏覽器解析出來最後呈現給使用者在瀏覽器上看到的結果

發起請求

通過http庫向目標站點發起請求,也就是傳送乙個request,請求可以包含額外的header等資訊,等待伺服器響應

獲取響應內容

解析內容

得到的內容可能是html,可以用正規表示式,頁面解析庫進行解析,可能是json,可以直接轉換為json物件解析,可能是二進位制資料,可以做儲存或者進一步的處理

儲存資料

儲存形式多樣,可以存為文字,也可以儲存到資料庫,或者儲存特定格式的檔案

瀏覽器傳送訊息給**所在的伺服器,這個過程就叫做htpp request

伺服器收到瀏覽器傳送的訊息後,能夠根據瀏覽器傳送訊息的內容,做相應的處理,然後把訊息回傳給瀏覽器,這個過程就是http response

瀏覽器收到伺服器的response資訊後,會對資訊進行相應的處理,然後展示

請求方式

主要有:get/post兩種型別常用,另外還有head/put/delete/options

get和post的區別就是:請求的資料get是在url中,post則是存放在頭部

post:向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。

head:與get方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部分。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中「關於該資源的資訊」(元資訊或稱元資料)。

options:這個方法可使伺服器傳回該資源所支援的所有http請求方法。用'*'來代替資源名稱,向web伺服器傳送options請求,可以測試伺服器功能是否正常運作。

delete:請求伺服器刪除request-uri所標識的資源。

請求url

url,即統一資源定位符,也就是我們說的**,統一資源定位符是對可以從網際網路上得到的資源的位置和訪問方法的一種簡潔的表示,是網際網路上標準資源的位址。網際網路上的每個檔案都有乙個唯一的url,它包含的資訊指出檔案的位置以及瀏覽器應該怎麼處理它。

url的格式由三個部分組成:

第一部分是協議(或稱為服務方式)。

第二部分是存有該資源的主機ip位址(有時也包括埠號)。

第三部分是主機資源的具體位址,如目錄和檔名等。

爬蟲爬取資料時必須要有乙個目標的url才可以獲取資料,因此,它是爬蟲獲取資料的基本依據。

請求頭

請求體請求是攜帶的資料,如提交表單資料時候的表單資料(post)

所有http響應的第一行都是狀態行,依次是當前http版本號,3位數字組成的狀態**,以及描述狀態的短語,彼此由空格分隔。

響應狀態

有多種響應狀態,如:200代表成功,301跳轉,404找不到頁面,502伺服器錯誤

響應頭如內容型別,型別的長度,伺服器資訊,設定cookie,如下圖

響應體最主要的部分,包含請求資源的內容,如網頁html,,二進位制資料等

直接處理

json解析

正規表示式處理

beautifulsoup解析處理

pyquery解析處理

xpath解析處理

出現這種情況是因為,很多**中的資料都是通過js,ajax動態載入的,所以直接通過get請求獲取的頁面和瀏覽器顯示的不同。

如何解決js渲染的問題?

分析ajax

selenium/webdriver

splash

pyv8,ghost.py

文字:純文字,json,xml等

關係型資料庫:如mysql,oracle,sql server等結構化資料庫

非關係型資料庫:mongodb,redis等key-value形式儲存

python爬蟲基本流程 Python爬蟲流程

python爬蟲流程 主要分為三個部分 1 獲取網頁 2 解析網頁 獲取資料 儲存資料 三個流程的技術實現 1.獲取網頁 獲取網頁的技術基礎 urllib requests selenium 獲取網頁的高階技術 多執行緒抓取 登入抓取 突破ip限制和伺服器抓取 2.解析網頁 解析網頁的技術基礎 re...

Python爬蟲基本流程

爬蟲定義 爬蟲基本流程 發起請求 通過url向伺服器傳送requests請求,請求可以包含額外的header資訊。2.獲取響應內容 解析內容 如果是html 則可以使用網頁解析器進行解析 如果是json資料則可以轉換成json物件進行解析 如果是二進位制資料則可以儲存到檔案進行進一步的處理。儲存資料...

爬蟲學習 爬蟲基本流程

標籤 空格分隔 資料探勘 爬蟲 1 發起請求 2 獲取相應內容 3 解析網路內容 4 儲存資料 結構化儲存 user server request server user response 1 請求方式 get,post,head,put,delete 2 get和post的區別 請求的引數包含的部...