Python爬蟲 爬蟲需要遵守的規則

Python爬蟲(二十)

學習Python爬蟲過程中的心得體會以及知識點的整理,方便我自己查找,也希望可以和大家一起交流。

—— 爬蟲需要遵守的規則 ——

網絡爬蟲的尺寸

  • 爲了爬取網頁的爬蟲:小規模,數據量小,爬取速度不敏感。
    建議使用Requests庫。

  • 爲了爬取網站或者系列網站的爬蟲:中規模,數據量較大,爬取速度敏感;
    建議使用Scrapy庫

  • 爲了爬取全網的爬蟲:大規模,類似於搜索引擎,爬取速度關鍵;
    只能進行定製開發

網絡爬蟲引發的問題

主要問題:騷擾問題、法律風險、隱私泄露

  • 網絡爬蟲的騷擾:受限於編寫水平和目的,網絡爬蟲將會爲Web服務器帶來巨大的資源開銷。

  • 網絡爬蟲的法律風險:服務器上的數據有產權歸屬,網絡爬蟲獲取數據後牟利將帶來法律風險。

  • 網絡爬蟲泄露隱私:網絡爬蟲可能具備突破簡單訪問控制的能力,獲得被保護數據從而泄露個人隱私。

網絡爬蟲的限制

  • 來源審查:判斷User­Agent進行限制

    • 檢查來訪HTTP協議頭的User­Agent域,只響應瀏覽器或友好爬蟲的訪問。
    • 對維護網站的技術人員的技術水平有要求。
  • 發佈公告:Robots協議

    • 告知所有爬蟲網站的爬取策略,要求爬蟲遵守
    • 但是是否遵守,還是靠爬蟲本身。

Robots協議

Robots Exclusion Standard 網絡爬蟲排除標準

  • 作用:網站告知網絡爬蟲哪些頁面可以抓取,哪些不行。

  • 形式:在網站根目錄下的robots.txt文件 Robots協議基本語法。
    例如:https://www.jd.com/robots.txt
    全文如下:

    User-agent: * 
    Disallow: /?* 
    Disallow: /pop/*.html 
    Disallow: /pinpai/*.html?* 
    User-agent: EtaoSpider 
    Disallow: / 
    User-agent: HuihuiSpider 
    Disallow: / 
    User-agent: GwdangSpider 
    Disallow: / 
    User-agent: WochachaSpider 
    Disallow: /
    
    • User-agent: *
      該協議將爬蟲命名爲User-agent,符號“ * ”代表所有,意思是所有爬蟲均要遵守該協議。

    • Disallow: /?*
      Disallow是指不允許爬取的頁面,“ /?* 是指根目錄所有以疑問號開頭的網頁,/代表根目錄,意思是不允許爬取該網站根目錄所有以疑問號開頭的網頁。

    • Disallow: /pop/*.html?*
      /pop/*.html?* ”是指一種通配符,相關知識需要先學習正則表達式。

    • User-agent: EtaoSpider
      Disallow: /
      意思是名字叫EtaoSpider的爬蟲禁止爬取該網站的任何網頁。

    作爲搜索引擎的百度,他的robots協議的規定就複雜得多:百度robots協議
    全文見本文末尾。

Robots協議的遵守方式

  • 若網站無robots協議或者robots協議爲空,則默認爬蟲可以爬取所有信息。

  • 網絡爬蟲使用Robots協議:自動或人工識別robots.txt,再進行內容爬取 。

  • 約束性:Robots協議是建議但非約束性,網絡爬蟲可以不遵守,但存在法律風險。

※百度robots協議全文(看最後一行你就懂了):

User-agent: Baiduspider
Disallow: /baidu
Disallow: /s?
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Googlebot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: MSNBot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Baiduspider-image
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: YoudaoBot
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou web spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou inst spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou spider2
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou blog
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou News Spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sogou Orion spider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: ChinasoSpider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: Sosospider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh


User-agent: yisouspider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: EasouSpider
Disallow: /baidu
Disallow: /s?
Disallow: /shifen/
Disallow: /homepage/
Disallow: /cpro
Disallow: /ulink?
Disallow: /link?
Disallow: /home/news/data/
Disallow: /bh

User-agent: *
Disallow: /
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章