新手向爬蟲(二)站點分析

新手向爬蟲(一)利用工具輕松爬取簡書并分析中我們初步接觸了爬蟲,關鍵在于:

  1. 通過工具獲取網頁內容選擇器
  2. 分析頁面元素,是否包含隱藏信息
  3. 利用瀏覽器的開發者工具分析網絡請求

現在讓我們對簡書站點做一定的分析:

Robots.txt

  • 首先,網站自身的robots.txt會為我們提供一定信息。大多數網站會定義/robots.txt, 這樣可以讓爬蟲了解爬取該網站時存在哪些限制,雖然這些只是建議,但是一般情況下良好的網絡公民都應當遵守這些限制。關于robots.txt的詳細信息可以查看這個網站。讓我們看看簡書的robots頁面吧。
  • 可以看出,簡書對無論使用哪種用戶代理(User-agent)的爬蟲都封禁了某些路徑。讓人好奇的是有兩個以/p開頭的路徑,一看就是兩篇文章,什么文章會讓簡書對爬蟲封禁呢?

    哈哈,原來是某位簡友在早先簡書安卓app還沒出來時自己開發了個簡書app,估計是后來簡書app出來了,避免大家在搜索時混淆就對爬蟲封禁了這兩個頁面。
  • 我們再看下其它網站的,比如知乎:

    可以看到,有個Crawl-delay : 10,它意味著無論哪種爬蟲都應該在兩次下載請求之間給出10秒的抓取延遲,我們需要遵從該建議以減輕服務器負擔。否則服務器可能封禁你的IP一段時間。
  • 我們再來看看美化版wiki-wikiwand的,除了爬蟲信息外,它還提供了一個sitemap(站點地圖)來幫助爬蟲定位網站最新的信息,而無需爬取每一個網頁。(站點地圖的標準
  • 讓我們打開sitemap看看:


估算網站大小

  • 目標網站的大小會影響我們如何進行爬取。估算網站大小的一個簡便方法就是檢查大型搜索站點的結果,它們的爬蟲很可能爬取過我們感興趣的頁面,不過大型的網站結果并不是很準確,用來有個直觀感受就好了;小網站還是比較實用的。
  • 讓我們在搜索引擎中加入site參數來看下簡書的結果:





    結果有一定差異,百度最多,谷歌其次,搜狗最少,不過都在百萬量級。

  • 再看下知乎



  • 搜狗知乎的網頁數超過百度不少。
  • 此外,在域名后面添加URL路徑可以對搜索結果進行過濾。(很多時候我們只想爬取某一部分有特定信息的網頁)。

識別網站所有者

  • 安裝pip install whois (python)
  • 對簡書使用,可以看到上海佰集信息科技有限公司,不過這里的創立日期和百度百科上2010年8月6日的登記成立日期好像不是一回事。
  • 查看域名歸屬和其它一些信息也有利于我們的爬蟲決策。


  • 再看下知乎和facebook的。


    知乎

    臉書

分析網站所用技術

  • 安裝pip install builtwith (python)
  • 對簡書使用,當然網站使用技術是多面的,這里可能分析的不夠全。
  • 網站所用的框架,以及AngularJS之類的動態加載,ASP.NET的會話管理和表單提交都會影響我們的爬蟲策略。


查看網頁編碼

  • 網頁編碼也是我們需要注意的地方


  • 可以看出簡書是使用了utf8編碼,對python爬蟲來說沒有大問題

參考:Web Scraping with Python —— 用python寫網絡爬蟲

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容