
在爬取一個網站內容之前,我么最好一下准備,這樣會讓我們更好的去思考要采取如何的一種方式來對網站的內容進行爬取。

- 檢查robots.txt
里面詳細介紹該網站的哪些數據是可以爬取的,哪些是不可以爬取的。同時檢查robots.txt可以最小化怕從被禁封的可能。關於robots.tx協議的更多信息可以參見
http://robotstxt.org
- 檢查網站地圖
網站提供的Sitemap文件可以幫助爬蟲定位網站最新內容,而無需爬取每一個網頁,Sitemap鏈接可以在robots.txt中找到。雖然男男女女sitemap文件提供了一種爬取網站的有效方式,但是經常存在缺失、過期或不完整的問題。想了解更多的信息可以訪問以下鏈接
http://www.sitemaps.org/protcol.html
例如訪問豆瓣的robots.txt

- 估算網站大小
估算網站大小的一個簡便方法是檢查Google爬蟲的結果。聽過訪問一下玩個可以了解到該接口及其他高級搜索參數的用法
https://www.google.com/advanced_search
這里我們對網站進行搜索的話,直接搜
site:xxxx.xxx.xxx
- 識別網站所有技術
buildwith模塊
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">builtwith.parse('example.webscraping.com')</span>
然后會返回
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">{'web-servers': ['Nginx'], 'web-frameworks': ['Web2py', 'Twitter Bootstrap'], 'programming-languages': ['Python'], 'javascript-frameworks': ['jQuery', 'Modernizr', 'jQuery UI']}</span>
這里值得一說的是,builtwith模塊是不支持python2.0以上的版本,但是這並不是一個問題,跟着它報錯的地方來進行修改后,builwith模塊就可以使用了。下面提出要修改的地方
- except Expection,e錯誤
將代碼
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">except Expection , e:</span>
修改為
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">except Expection as e:</span>
- print 錯誤
給每個輸出的內容,都添加上括號
- TypeError
在代碼
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">if html is None:
html = response.read()</span>
后面添加下面一句
<span data-wiz-span="data-wiz-span" style="font-size: 0.667rem;">html = html.decode('gbk') #或者 html = html.decde('utf-8')</span>
- 尋找網站所有者
在我們知道已知網站的所有者會禁封網絡爬蟲,那么我們最好將下載速度控制的更加保守一些。可以通過一下代碼來獲取網站的所有者
import whois
print (whois.whois('appspot.com'))
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">