大到各類搜尋引擎,小到日常數據採集,都離不開網絡爬蟲。爬蟲的基本原理很簡單,遍歷網絡中網頁,抓取感興趣的數據內容。這篇文章會從零開始介紹如何編寫一個網絡爬蟲抓取數據,然後會一步步逐漸完善爬蟲的抓取功能。
我們使用python 3.x作為我們的開發語言,有一點python的基礎就可以了。 首先我們還是從最基本的開始。
工具安裝
我們需要安裝python,python的requests和BeautifulSoup庫。我們用Requests庫用抓取網頁的內容,使用BeautifulSoup庫來從網頁中提取數據。
安裝python運行pip install requests運行pip install BeautifulSoup
抓取網頁
完成必要工具安裝後,我們正式開始編寫我們的爬蟲。我們的第一個任務是要抓取所有豆瓣上的圖書信息。我們以https://book.douban.com/subject/26986954/為例,首先看看開如何抓取網頁的內容。
使用python的requests提供的get()方法我們可以非常簡單的獲取的指定網頁的內容, 代碼如下:
提取內容
抓取到網頁的內容後,我們要做的就是提取出我們想要的內容。在我們的第一個例子中,我們只需要提取書名。首先我們導入BeautifulSoup庫,使用BeautifulSoup我們可以非常簡單的提取網頁的特定內容。
連續抓取網頁
到目前為止,我們已經可以抓取單個網頁的內容了,現在讓我們看看如何抓取整個網站的內容。我們知道網頁之間是通過超連結互相連接在一起的,通過連結我們可以訪問整個網絡。所以我們可以從每個頁面提取出包含指向其它網頁的連結,然後重複的對新連結進行抓取。
總結
我們的第一個網絡爬蟲就已經開發完成了。它可以抓取豆瓣上的所有圖書,但也有很多局限性,畢竟它只是我們的第一個小玩具。在後續的文章中我們會逐步完善我們的爬蟲的抓取功能。