Python爬蟲入門 day03

第二章 爬蟲的基本常識

2.1 爬蟲的合法性問題

目前還處於不明確的蠻荒階段,“允許哪些行為”這種基本秩序還處於建設中。

至少目前來看,如果抓取的數據為個人所用,則不存在問題;如果數據用於轉載,那麼

抓取數據的類型就很重要了:一般來說,當抓取的數據是實現生活中的真實數據(比如,營業地址,電話清單)時,是允許轉載的,但是,如果是原創數據(比如,意見或評論),通常就會受到版權限制,而不能轉載。

討論:百度爬蟲抓取數據行為的合法性問題。

**注意:不管怎麼樣,作為一個訪客,應當約束自己的抓取行為,這就是說要求下載請求的速度需要限定在一個合理值之內,並且還需要設定一個專屬的用戶代理來標識自己。

2.2 爬蟲的準備工作:網站的背景調研

網站的背景調研對聚焦的網絡爬蟲而言至關重要,正所謂:知己知彼,百戰不殆。

2.2.1 robots協議

Robots協議(也稱為爬蟲協議、機器人協議等)的全稱是“網絡爬蟲排除標準”(Robots Exclusion Protocol),網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。

比如:

淘寶網:https://www.taobao.com/robots.txt

騰訊網:http://www.qq.com/robots.txt

再比如:

https://www.douban.com/robots.txt

http://www.mafengwo.cn/robots.txt

搜索引擎和DNS解析服務商(如DNSPod等)合作,新網站域名將被迅速抓取。但是搜索引擎蜘蛛的爬行是被輸入了一定的規則的,它需要遵從一些命令或文件的內容,如標註為nofollow的鏈接,或者是Robots協議。另外一種則是,通過網站的站長主動對搜索引擎提交網站的網址,搜索引擎則會在接下來派出“蜘蛛”,對該網站進行爬取。

2.2.2 網站地圖sitemap

sitemap是一個網站所有鏈接的容器。很多網站的連接層次比較深,蜘蛛很難抓取到,網站地圖可以方便搜索引擎蜘蛛抓取網站頁面,通過抓取網站頁面,清晰瞭解網站的架構,網站地圖一般存放在根目錄下並命名為sitemap,為搜索引擎蜘蛛指路,增加網站重要內容頁面的收錄。網站地圖就是根據網站的結構、框架、內容,生成的導航網頁文件。大多數人都知道網站地圖對於提高用戶體驗有好處:它們為網站訪問者指明方向,並幫助迷失的訪問者找到他們想看的頁面。

\t例子:http://www.mafengwo.cn/sitemapIndex.xml
\t

網站地圖sitemap有兩種形式:

A.HTML:稱為HTML版本的網站地圖,英文是sitemap,特質HTML版網站地圖,這個版本的網站地圖就是用戶可以在網站上看到的,列出網站上所有主要頁面的鏈接的頁面。對小網站來說,甚至可以列出整個網站的所有頁面,對於具有規模的網站來說,一個網站地圖不可能羅列所有的頁面鏈接,可以採取兩種辦法,一種辦法是網站地圖只列出網站最主要的鏈接,如一級分類,二級分類,第二種辦法是將網站地圖分成幾個文件,主網站地圖列出通往次級網站的鏈接,次級網站地圖在列出一部分頁面鏈接。

B.XML:XML版本的網站地圖是由Google首先提出的,怎麼區分了,上面所說的HTML版本的s是小寫的,而XML版本的S則是大寫的,XML版本的網站地圖是由XML標籤組成的,文件本身必須是utf8編碼,網站地圖文件實際上就是列出網站需要被收錄的頁面的URL,最簡單的網站地圖可以是一個純文本件,文件只要列出頁面的URL,一行列一個URL,搜索引擎就能抓取並理解文件內容。

可以使用這個網站工具來生成某網站的sitemap: www.sitemap-xml.org

2.2.3 估算網站的大小

可以使用搜索引擎來做,比如在百度中使用site:

Python爬蟲入門 day03

說明:這裡只是通過百度搜索引擎大致來估算網站的大小,受到網站本身對搜索引擎爬蟲的限制,及搜索引擎本身爬取數據技術的限制,所以這只是一個經驗值,可以作為估算網站體量量級的一個經驗值。

注:百度只能做一級頁面的統計,Google可以做二級頁面的統計。

2.2.4 識別網站用了何種技術

為了更好的瞭解網站,抓取該網站的信息,我們可以先了解一下該網站大致所使用的技術架構。

安裝builtwith :

Windows: pip install bulitwith

Linux: sudo pip install builtwith

使用:在Python交互環境下,輸入:

import builtwith

builtwith.parse("http://www.sina.com.cn")

2.2.5 尋找網站的所有者

有時候,我們需要知道網站的所有者是誰,這裡在技術上有個簡單的方法可以參考。

安裝python-whois :

Windows: pip install python-whois

使用:在Python交互環境下,輸入:

import whois

whois.whois("http://www.sina.com.cn")

Python爬蟲入門 day03


分享到:


相關文章: