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

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

  1. 通過工具獲取網(wǎng)頁內(nèi)容選擇器
  2. 分析頁面元素,是否包含隱藏信息
  3. 利用瀏覽器的開發(fā)者工具分析網(wǎng)絡(luò)請(qǐng)求

現(xiàn)在讓我們對(duì)簡書站點(diǎn)做一定的分析:

Robots.txt

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

    哈哈,原來是某位簡友在早先簡書安卓app還沒出來時(shí)自己開發(fā)了個(gè)簡書app,估計(jì)是后來簡書app出來了,避免大家在搜索時(shí)混淆就對(duì)爬蟲封禁了這兩個(gè)頁面。
  • 我們?cè)倏聪缕渌W(wǎng)站的,比如知乎:

    可以看到,有個(gè)Crawl-delay : 10,它意味著無論哪種爬蟲都應(yīng)該在兩次下載請(qǐng)求之間給出10秒的抓取延遲,我們需要遵從該建議以減輕服務(wù)器負(fù)擔(dān)。否則服務(wù)器可能封禁你的IP一段時(shí)間。
  • 我們?cè)賮砜纯疵阑鎤iki-wikiwand的,除了爬蟲信息外,它還提供了一個(gè)sitemap(站點(diǎn)地圖)來幫助爬蟲定位網(wǎng)站最新的信息,而無需爬取每一個(gè)網(wǎng)頁。(站點(diǎn)地圖的標(biāo)準(zhǔn)
  • 讓我們打開sitemap看看:


估算網(wǎng)站大小

  • 目標(biāo)網(wǎng)站的大小會(huì)影響我們?nèi)绾芜M(jìn)行爬取。估算網(wǎng)站大小的一個(gè)簡便方法就是檢查大型搜索站點(diǎn)的結(jié)果,它們的爬蟲很可能爬取過我們感興趣的頁面,不過大型的網(wǎng)站結(jié)果并不是很準(zhǔn)確,用來有個(gè)直觀感受就好了;小網(wǎng)站還是比較實(shí)用的。
  • 讓我們?cè)谒阉饕嬷屑尤雜ite參數(shù)來看下簡書的結(jié)果:





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

  • 再看下知乎



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

識(shí)別網(wǎng)站所有者

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


  • 再看下知乎和facebook的。


    知乎

    臉書

分析網(wǎng)站所用技術(shù)

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


查看網(wǎng)頁編碼

  • 網(wǎng)頁編碼也是我們需要注意的地方


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

參考:Web Scraping with Python —— 用python寫網(wǎng)絡(luò)爬蟲

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容