爬蟲概述

leagueandlegends發表於2024-05-02

一、什麼是爬蟲

爬蟲(Crawler)是一種按照既定規則,在網路上自動爬取資訊的程式或指令碼。也稱為網際網路蜘蛛(Internet Spider)或網路機器人(Web Robot)。爬蟲可以自動抓取網路資訊,主要用於網站資料採集、內容監測等。

二、爬蟲能做什麼

1、搜尋引擎

搜尋引擎利用爬蟲發現網路上的頁面,並建立索引,以提供搜尋服務

2、資料採集

可以使用爬蟲從網站上採集結構化的資料,例如天氣預報、房價、商品價格等。這些資料可以用於分析。

3、網站檢測

透過爬蟲可以監測網站的執行狀態、內容更新頻率等,及時發現問題

4、輿情分析

使用爬蟲技術可以採集相關的資料,進行產品、政策等方面的輿情分析。

5、自動化測試

6、做一些脫離手動的操作(幫人投票,12306投票,微信聊天助手-itchat)

三、資料能做什麼

1、聚合產品

新聞網站,早期的今日頭條

2、搜尋引擎

百度、谷歌

3、資料分析、人工智慧的源資料

4、特定領域的資料服務

二手車估價、天氣預報、團購、去哪兒網

四、爬蟲工作原理

爬蟲的工作流程一般可以分為四步:
1. 確定幾個初始URL作為入口
2. 傳送請求下載對應的網頁
3. 分析網頁內容,提取需要的資訊
4. 提取出頁面中的連結作為新的URL
然後繼續迴圈執行上述流程,直到滿足結束條件。

五、爬蟲型別

根據爬取的目標範圍,爬蟲可以分為兩類:
1. 通用爬蟲:爬取範圍廣泛,目標是發現網路上的所有資訊,例如搜尋引擎中的百度爬蟲和谷歌爬蟲。
2. 聚焦爬蟲:爬取範圍具體且清晰,以獲取特定領域的資訊,例如價格比較網站的產品價格爬蟲。

六、爬蟲工作流程詳解

(一)確定初始URL
爬蟲需要確定一個或多個初始URL作為入口。初始URL可以手動提供,也可以儲存在資料庫或其他檔案中讀取。
(二)下載網頁
利用請求模組向初始URL傳送請求,並下載對應的網頁,通常會將頁面內容以HTML格式儲存。
(三)解析網頁內容
根據網頁元素的位置、屬性等資訊,使用解析模組提取出所需的資料。例如文章標題、釋出時間、正文等。
(四)提取連結獲取新URL
解析網頁的同時,爬蟲會提取出頁面中的連結,作為後續待爬取的新URL。
重複上述流程,直到滿足結束條件,例如爬取網頁數達到預定量。

七、爬蟲策略

(一)遵守robots協議
robots協議定義了爬蟲的訪問頻率等規則,爬蟲需要遵守以避免過多佔用伺服器資源。
(二)限定爬取頻率
在robots協議基礎上,進一步合理限定爬取頻率,減輕伺服器壓力。
(三)設定隨機等待時間
讓爬蟲程式在傳送請求之間等待一定隨機時間,降低對伺服器的負載。

(四)使用快取和判重機制
使用快取已經爬取過得頁面,並設定判重機制,避免重複爬取
(五)採用使用者代理
模擬瀏覽器的請求頭和使用者代理資訊,避免被拒絕訪問。

八、學號爬蟲需要了解的知識

1、計算機網路(http/https協議,tcp/ip協議,socket程式設計)
2、前端基礎
3、正規表示式
4、資料儲存技術(分散式儲存)(nosql)
5、併發處理技術(多程序、多執行緒、執行緒池、協程)
6、影像識別(處理反爬、驗證碼),機器學習演算法(驗證碼、資料解析)

九、爬蟲中需要解決的問題

1、爬蟲的採集和更新策略
2、解決反爬
3、資料解析
4、資料儲存
5、模擬登陸(驗證碼識別)
6、爬蟲的監控和部署
7、資料的去重(url去重、內容去重)

十、如何正確看待爬蟲

1、爬蟲不應該毫無節制
2、robots協議
3、法律問題
4、爬蟲不能抓取頁面上看不到的資料,是為了防止重複工作

5、目標網站會乖乖讓我們隨便爬取資料嗎?-反爬

disallow是不允許爬蟲的目錄

allow是允許爬蟲的目錄

慕課網robots協議

十一、計算機網路相關知識

協議相關看網路部分。

一個完整的網路請求過程

網路爬蟲的基本原理,網路爬蟲是捜索引擎抓取系統的重要組成部分。爬蟲的主要目的是將網際網路上的網頁下載到本地形成一個或聯網內容的映象備份。

網路請求過程

發起請求:透過 URL 向伺服器發起 Request 請求(同開啟瀏覽器,輸入網址瀏覽網頁),請求可以包含額外的 headers、cookies、proxies、data 等資訊,Python 提供了許多庫,幫助我們實現這個流程,完成 HTTP 請求操作,如 urllib、requests 等;
獲取響應內容:如果伺服器正常響應,會接收到 Response,Response 即為我們所請求的網頁內容,包含 HTML(網頁原始碼),JSON 資料或者二進位制的資料(影片、音訊、圖片)等;
解析內容:接收到響應內容後,需要對其進行解析,提取資料內容,如果是 HTML(網頁原始碼),則可以使用網頁解析器進行解析,如正規表示式(re)、Beautiful Soup、pyquery、lxml 等;如果是 JSON 資料,則可以轉換成 JSON 物件進行解析;如果是二進位制的資料,則可以儲存到檔案進行進一步處理;
儲存資料:可以儲存到本地檔案(txt、json、csv 等),或者儲存到資料庫(MySQL,Redis,MongoDB 等),也可以儲存至遠端伺服器,如藉助 SFTP 進行操作等。

IP地址和Url

IP地址

IP地址是IP協議提供的一種統一的地址格式,它為網際網路上的每一個網路和每一臺主機分配一個邏輯地址,以此來遮蔽實體地址的差異。

如果看自己本機地址,windows上使用ipconfig

URL

URL(網址)是Uniform Resource Locator的簡寫,統一資源定位符。每個URL指向一個獨特的資源,可以是一個html頁面、一個CSS文件、一個圖片、檔案、JS檔案等。URL由以下幾部分組成:

1、協議的型別。如:https
2、主機名稱/域名。如:baike.baidu.com
3、埠號
4、查詢路徑。如:865?
5、查詢引數(為?後所有內容)。如:fromtitle=%E8%80%81%E8%99%8E&fromid=65781,採用鍵值對形式,多個鍵值對用&隔開
6、錨點,前端用來做面定位的。現在一些前後端分離專案,也用錨點來做導航
前端定位:https://baike. baidu.com/item/*E5488%98%E8%8BKA5%E8%88%B1#2
錨點導航:動的是#之後的內容,根據錯點去請求資料 https://music.163.com/#/friend

相關文章