Python爬蟲——網路爬蟲簡介

語言: CN / TW / HK

攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第14天,點選檢視活動詳情

1、爬蟲介紹

網路爬蟲(Web Spider)又稱“網路蜘蛛”或“網路機器人”,它是一種按照一定規則從網際網路中獲取網頁內容的程式或者指令碼。

網路爬蟲會模擬人使用瀏覽器,上網自動抓取網際網路中資料。

Python 爬蟲指的是用 Python來編寫爬蟲程式。其他語言也可以編寫爬蟲,如 Java、PHP 、C/C++等,不過相比而言,Python 語法優美、程式碼簡潔、開發效率高、支援多個爬蟲模組,比如 urllib、requests、Bs4 等。Python 的請求模組和解析模組豐富成熟,並且還提供了強大的 Scrapy 框架,讓編寫爬蟲程式變得更為簡單。因此 Python 爬蟲幾乎成了網路爬蟲的代名詞。

2、爬蟲的應用

1、資料分析:採集有價值的資料,過濾掉那些無效的資料 2、社交軟體使用者冷啟動:當社交產品沒有使用者時,可以爬取其他社交軟體使用者的資料當做假使用者,來實現引流

3、輿情監控 4、競爭對手監控:採集競爭對手資料

注意:要遵守爬蟲的使用規範、禮儀,不要做損害他人利益、抓取個人隱私的事情,否則可能“牢底坐穿”。

3、爬蟲的分類

robots 協議

robots 協議也稱作爬蟲協議、機器人協議,全名叫作網路爬蟲排除標準(Robots Exclusion Protocol):是一種“約定俗稱”的協議,用來告訴爬蟲和搜尋引擎哪些頁面可以抓取,哪些不可以抓取,並不具備法律效力,起不到限制作用,一般是放在網站根目錄下的名為robots .txt 的文字檔案。

當爬蟲訪問一個網站時,它首先會檢查這個網站根目錄下是否有robots.txt檔案,如果存在,搜爬蟲會根據robots.txt檔案定義的爬取範圍來爬取資料。如果沒有robots.txt檔案,爬蟲便會爬取所有可直接訪問的頁面的資料。

自己寫的爬蟲可以不需要遵守 robots 協議,但是爬取內容不能用於商業用途。

通用網路爬蟲

通用網路爬蟲又稱全網爬蟲(Scalable Web Crawler),是搜尋引擎的重要組成部分,比如百度,sougou,谷歌,360等搜尋引擎。通用爬蟲遵守 robots 協議。

常見通用爬蟲名稱及其對應的網站和名稱:

| 通用爬蟲名稱 | 網站和名稱 | | ------------ | --------------------------- | | BaiduSpider | www.baidu.com 百度 | | Googlebot | www.google.com 谷歌 | | 360Spider | www.so.com 360搜尋 | | YodaoBot | www.youdao.com 有道 | | ia_archiver | www.alexa.cn Alexa | | Scooter | www.altavista.com altavista |

通用爬蟲缺點:

  • 爬取的資料大多是無用的
  • 不能根據使用者的需求來精準獲得資料,爬取的網站會競價排名

聚焦網路爬蟲

聚焦網路爬蟲(Focused Crawler),又稱主題網路爬蟲:根據特定需求,來實現特定網路爬蟲程式,抓取需要的資料。

聚焦網路爬蟲在抓取的時候會對網頁內容進行篩選和處理,儘量只抓取與需求相關的網頁資料,極大地節省了硬體和網路資源 。

設計思路:

  • 獲取要爬取的URL
  • 開啟網頁原始碼分析網頁結構以及元素節點
  • 模擬瀏覽器傳送http請求訪問url,返回html物件
  • 解析html物件,得到需要的資料

增量式網路爬蟲

增量式網路爬蟲(Incremental Web Crawler):對已下載的網頁採取增量式更新,它可以監測網站資料更新的情況,以便爬取到該網站新出的資料或者已經發生變化的資料。