爬蟲抓取網頁資料原理
什麼是網路爬蟲,這裡先引用一下 百度百科 上的解析:
網路爬蟲是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。
說起網路爬蟲,人們常常會用這樣一個比喻:如果把網際網路比喻成一張網,那麼網路爬蟲就可以認為是一個在網上爬來爬去的小蟲子,它通過網頁的連結地址來尋找網頁,通過特定的搜尋演算法來確定路線,通常從網站的某一個頁面開始,讀取網頁的內容,找到在網頁中的其它連結地址,然後通過這些連結地址尋找下一個網頁,這樣一直迴圈下去,直到把這個網站所有網頁都抓取完為止。
爬蟲抓取網頁資料原理
下面的圖片很好的展現了一般網路爬蟲的基本過程,下面讓我們來詳細解釋一下這張圖片的含義吧
1、傳送請求
爬蟲的第一個步驟就是對起始 URL 傳送請求,以獲取其返回的響應
值得注意的是,傳送請求實質上是指傳送請求報文的過程
請求報文 包括以下四個方面:請求行、請求頭、空行和請求體
但是,往往在使用 Python 相關的網路請求庫傳送請求時,只需關注某些特殊的部分即可,而非完整的請求報文,下面我們將以粗體的形式標識出我們需要特別關注的部分
(1)請求行
請求行由請求方法、請求 URL 和 HTTP 協議版本 3 個欄位組成,欄位間使用空格分隔
① 請求方法:請求方法是指對目標資源的操作方式,常見的有 GET 方法和 POST 方法
GET:從指定的資源請求資料,查詢字串包含在 URL 中傳送
POST:向指定的資源提交要被處理的資料,查詢字串包含在請求體中傳送
② 請求 URL:請求 URL 是指目標網站的統一資源定位符 (Uniform Resource Locator,URL)
③ HTTP 協議版本:HTTP 協議是指通訊雙方在通訊流程和內容格式上共同遵守的標準
(2)請求頭
請求頭 被認為是請求的配置資訊,以下列舉出常用的請求頭資訊(持續補充中)
User-Agent:包含發出請求的使用者的資訊,設定 User-Agent 常用於處理反爬蟲
Cookie:包含先前請求的內容,設定 Cookie 常用於模擬登陸
Referer:指示請求的來源,用於可以防止鏈盜以及惡意請求
(3)空行
空行標誌著請求頭的結束
(4)請求體
請求體 根據不同的請求方法包含不同的內容
若請求方法為 GET,則此項為空;若請求方法為 POST,則此項為待提交的資料(即表單資料)
2、獲取響應
爬蟲的第二個步驟就是獲取特定 URL 返回的響應,以提取包含在其中的資料
同樣的,響應其實是指完整響應報文,它包括四個部分:響應行、響應頭、空行和響應體
(1)響應行
響應行由 HTTP 協議版本、狀態碼及其描述組成
① HTTP 協議版本:HTTP 協議是指通訊雙方在通訊流程和內容格式上共同遵守的標準
② 狀態碼及其描述
100~199:資訊,伺服器收到請求,需要請求者繼續執行操作
200~299:成功,操作被成功接收並處理
300~399:重定向,需要進一步的操作以完成請求
400~499:客戶端錯誤,請求包含語法錯誤或無法完成請求
500~599:伺服器錯誤,伺服器在處理請求的過程中發生錯誤
(2)響應頭
響應頭 用於描述伺服器和資料的基本資訊,以下列舉出常用的響應頭資訊(持續補充中)
Set-Cookie:設定瀏覽器 Cookie,以後當瀏覽器訪問符合條件的 URL 時,會自動帶上該 Cooike
(3)空行
空行標誌著響應頭的結束
(4)響應體
響應體 就是網站返回的資料,在下一個步驟中我們需要對其進行分析處理
3、解析網頁
解析網頁實質上需要完成兩件事情,一是提取網頁上的連結,二是提取網頁上的資源
(1)提取連結
提取連結實質上是指獲取存在於待解析網頁上的其他網頁的連結
網路爬蟲需要給這些連結傳送請求,如此迴圈,直至把特定網站全部抓取完畢為止
(2)提取資源
提取資料則是爬蟲的目的,常見的資料型別如下:
文字:HTML,JSON 等
圖片:JPG,GIF,PNG 等
視訊:MPEG-1、MPEG-2 和 MPEG4.AVI 等
最終,我們可以對所獲得的資源作進一步的處理,從而提取出有價值的資訊
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011087/viewspace-2845964/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 爬蟲原理與資料抓取爬蟲
- wget 網頁爬蟲,網頁抓取工具wget網頁爬蟲
- [網路爬蟲]使用node.js cheerio抓取網頁資料爬蟲Node.js網頁
- 爬取網頁後的抓取資料_3種抓取網頁資料方法網頁
- 爬蟲抓取網頁的詳細流程爬蟲網頁
- node 爬蟲,使用 Google puppeteer 抓取 One一個 的網頁資料爬蟲Go網頁
- 爬蟲進階——動態網頁Ajax資料抓取(簡易版)爬蟲網頁
- 爬蟲技術抓取網站資料方法爬蟲網站
- Python爬蟲使用代理proxy抓取網頁Python爬蟲網頁
- Python網路爬蟲抓取動態網頁並將資料存入資料庫MYSQLPython爬蟲網頁資料庫MySql
- 如何用Python爬資料?(一)網頁抓取Python網頁
- 爬蟲工作原理詳解:從網頁請求到資料提取爬蟲網頁
- 網路爬蟲如何獲取IP進行資料抓取爬蟲
- 《網頁爬蟲》網頁爬蟲
- 如何使用代理IP進行資料抓取,PHP爬蟲抓取亞馬遜商品資料PHP爬蟲亞馬遜
- 網路爬蟲之抓取郵箱爬蟲
- python爬蟲-抓取騰訊招聘資訊頁面Python爬蟲
- IPIDEA大盤點,藉助網路爬蟲抓取資料的作用?Idea爬蟲
- 網路爬蟲(一):抓取網頁的含義和URL基本構成爬蟲網頁
- 爬蟲(6) - 網頁資料解析(2) | BeautifulSoup4在爬蟲中的使用爬蟲網頁
- 網頁資料抓取之噹噹網網頁
- Java抓取網頁資料(原網頁+Javascript返回資料)網頁JavaScript
- Java爬蟲系列二:使用HttpClient抓取頁面HTMLJava爬蟲HTTPclientHTML
- 編寫web2.0爬蟲——頁面抓取部分Web爬蟲
- 從網頁上抓取資料網頁
- Python爬蟲: 抓取One網頁上的每日一話和圖Python爬蟲網頁
- 不會Python爬蟲?教你一個通用爬蟲思路輕鬆爬取網頁資料Python爬蟲網頁
- 爬蟲抓取網路資料時經常遇到的六種問題爬蟲
- 讓爬蟲無障礙抓取上千萬APP資料爬蟲APP
- 爬蟲——網頁爬取方法和網頁解析方法爬蟲網頁
- 網路爬蟲的原理爬蟲
- 如何讓Python爬蟲一天抓取100萬張網頁Python爬蟲網頁
- 爬蟲,可用於增加訪問量和抓取網站全頁內容爬蟲網站
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 爬蟲資料採集的工作原理爬蟲
- 3天學會網頁爬蟲進行資料分析網頁爬蟲
- 爬蟲抓取UserAgent問題爬蟲
- node:爬蟲爬取網頁圖片爬蟲網頁