- Python數據分析入門:從數據獲取到可視化
- 沈祥壯
- 674字
- 2019-10-21 12:09:18
2.1 爬蟲簡介
什么是網絡爬蟲呢?網絡爬蟲(web crawler),也被稱為網絡蜘蛛(web spider),是在萬維網瀏覽網頁并按照一定規則提取信息的腳本或者程序。一般瀏覽網頁時,流程如圖2-1所示。

圖2-1
而利用網絡爬蟲爬取信息就是模擬這個過程。用腳本模仿瀏覽器,向網站服務器發出瀏覽網頁內容的請求,在服務器檢驗成功后,返回網頁的信息,然后解析網頁并提取需要的數據,最后將提取得到的數據保存即可。關于模擬過程的解釋如下。
●怎樣發起請求
使用requests庫來發起請求。
●服務器為什么要檢驗請求
大量的爬蟲請求會造成服務器壓力過大,可能使得網頁響應速度變慢,影響網站的正常運行。所以網站一般會檢驗請求頭里面的User-Agent(以下簡稱UA,相當于身份的識別)來判斷發起請求的是不是機器人,而我們可以通過自己設置UA來進行簡單偽裝。也有些網站設置有robots.txt來聲明對爬蟲的限制,例如www.baidu.com/robots.txt。
●怎樣解析網頁并提取數據
這里使用BeautifulSoup庫和正則表達式來解析網頁并提取數據。
●怎樣保存提取的內容
可以根據數據格式的不同將內容保存在TXT、CSV、XLSX、JSON等文件中,對于數據量比較大的內容,可以選擇存入數據庫。
注意:有些網站設置robots.txt來聲明對爬蟲的限制,一般情況下,我們應當遵守此規則。關于robots.txt的知識,這里僅作簡單介紹,詳情請參考維基百科或者http://www.robotstxt.org/。之后我們還會簡單介紹如何遵守robots.txt進行數據獲取。此外,本書所有爬蟲代碼示例均為學習交流之便。作為一名合格的互聯網公民,希望讀者在開發企業級爬蟲獲取數據時仔細閱讀相關網站的robots.txt,合理采集數據,切勿對網站造成過載等不良影響。
至此,已經大概了解網絡爬蟲的原理。想深入了解傳輸原理的讀者可參考一些關于HTTP協議的資料。接下來,我們將進行實際操作。