官术网_书友最值得收藏!

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協議的資料。接下來,我們將進行實際操作。

主站蜘蛛池模板: 海兴县| 乐平市| 岢岚县| 海林市| 大荔县| 新乡县| 民勤县| 绍兴县| 柳河县| 赤水市| 石阡县| 客服| 娄底市| 申扎县| 仁布县| 会东县| 大冶市| 余庆县| 沙洋县| 渝中区| 普安县| 比如县| 钟祥市| 平凉市| 会理县| 襄樊市| 郸城县| 海宁市| 大安市| 兴仁县| 德清县| 高台县| 华安县| 板桥市| 浏阳市| 新河县| 万宁市| 枣强县| 阜新| 苏尼特左旗| 孟村|