iT邦幫忙

0

robots.txt 介紹

  • 分享至 

  • xImage
  •  

前言

我的第一篇 IT 邦文章,就來介紹一下最近工作研究的東西吧!我是資訊領域的新手,以前做的偏硬體,後來在做 AI ,發現自己對網頁也很有興趣(反正技術都可互相應用不是嗎?)
/images/emoticon/emoticon82.gif
最近工作加入資料處理的團隊,需要做網頁爬蟲,才了解有 robots.txt 的存在,那我們就來看看這是什麼吧!

什麼是 robots.txt?

robots.txt 為存放於網站根目錄下的文字檔案(.txt),為 ASCII 編碼,如農業部官網的 robots.txt 如下:
https://ithelp.ithome.com.tw/upload/images/20240821/20166645T5eqK2CO03.png
這是用來告訴爬蟲機器人,哪些網站可以造訪,哪些網站不能造訪。如果是善良的機器人,會先造訪 robots.txt,並遵循內容進行爬蟲,如果是比較壞心的機器人,就不會遵守 robots.txt 的準則了。

但其實 robots.txt 不是一個強制性的規定,是一種約定成俗的準則,所以這也不代表可以保護你的網頁隱私。

robots.txt 指令

要怎麼寫 robots.txt 的內容呢?主要是幾個指令:Allow、Disallow 和 Crawl-delay。

  • Allow:允許哪些路徑可以被造訪
  • Disallow:禁止哪些路徑可以被造訪
  • Crawl-delay:防止爬蟲機器人讓伺服器負擔過重

如果你允許讓所有機器人進行爬蟲:

User-agent: *
Disallow:
或
User-agent: *
Allow:/

如果你只想允許特定的機器人:

User-agent: 機器人名稱
Allow:

如果你想要禁止所有的機器人:

User-agent: *
Disallow: /

如果你想要禁止機器人造訪特定的目錄:

防止所有的機器人:
User-agent: *
Disallow: /路徑/
禁止特定的機器人:
User-agent: 機器人名稱
Disallow: /路徑/

如果你想要設定特定的檔案類型或路徑,如:

User-agent: *
Disallow: /* .副檔名$

這裡「*」表示萬用字元,「$」表示網址結尾,像是「/files」會等於「/files*」。

提醒 robots.txt 是有區分大小寫的!

而 Crawl-delay 的用法,可以設定機器人對每個請求應等待的時間,以毫秒為單位,如:

Crawl-delay: 5

表示等待 5 毫秒。

網站地圖

有些 robots.txt 會有網站地圖(Sitemap),可以讓機器人依循去造訪網頁,就不會錯過一些內容,但也不是強制要依照該順序去爬資料。網站地圖是 XML 檔案的路徑,如 Booking.com robots.txt 中的網站地圖:
https://ithelp.ithome.com.tw/upload/images/20240821/20166645lr5RYj3h6Q.png

結論

簡單介紹 robots.txt 的指令和它的用途,如果有做爬蟲機器人,可以遵守 robots.txt 的內容,當個乖寶寶機器人唷!
/images/emoticon/emoticon08.gif

參考資料


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言