熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

學習XHTM+CSS2.0制作標准站點方法

2013-11-23 18:44:51  來源: Java核心技術 

  我們知道搜索引擎都有自己的搜索機器人(ROBOTS)並通過這些ROBOTS在網絡上沿著網頁上的鏈接(一般是http和src鏈接)不斷抓取資料建立自己的數據庫
  
  對於網站管理者和內容提供者來說有時候會有一些站點內容不希望被ROBOTS抓取而公開為了解決這個問題ROBOTS開發界提供了兩個辦法一個是robotstxt另一個是The Robots META標簽
  
   robotstxt
   什麼是robotstxt?
  
  robotstxt是一個純文本文件通過在這個文件中聲明該網站中不想被robots訪問的部分這樣該網站的部分或全部內容就可以不被搜索引擎收錄了或者指定搜索引擎只收錄指定的內容
  
  當一個搜索機器人訪問一個站點時它會首先檢查該站點根目錄下是否存在robotstxt如果找到搜索機器人就會按照該文件中的內容來確定訪問的范圍如果該文件不存在那麼搜索機器人就沿著鏈接抓取
  
  robotstxt必須放置在一個站點的根目錄下而且文件名必須全部小寫
  網站 URL
  相應的 robotstxt的 URL
  
  
  
  
  
  
  
  
  
  
  
  
  
   robotstxt的語法
  
  robotstxt文件包含一條或更多的記錄這些記錄通過空行分開(以CRCR/NL or NL作為結束符)每一條記錄的格式如下所示
      <field>:<optionalspace><value><optionalspace>
  
  在該文件中可以使用#進行注解具體使用方法和UNIX中的慣例一樣該文件中的記錄通常以一行或多行Useragent開始後面加上若干Disallow行詳細情況如下
  
  Useragent:
  該項的值用於描述搜索引擎robot的名字robotstxt文件中如果有多條Useragent記錄說明有多個robot會受到該協議的限制對該文件來說至少要有一條Useragent記錄如果該項的值設為*則該協議對任何機器人均有效robotstxt文件中 Useragent*這樣的記錄只能有一條
  
  Disallow :
  該項的值用於描述不希望被訪問到的一個URL這個URL可以是一條完整的路徑也可以是部分的任何以Disallow 開頭的URL均不會被robot訪問到例如Disallow: /help對/l 和/help/l都不允許搜索引擎訪問Disallow: /help/則允許robot訪問/l而不能訪問/help/l
  任何一條Disallow記錄為空說明該網站的所有部分都允許被訪問/robotstxt文件中至少要有一條Disallow記錄如果 /robotstxt是一個空文件則對於所有的搜索引擎robot該網站都是開放的
  
  下面是一些robotstxt基本的用法
  l 禁止所有搜索引擎訪問網站的任何部分
  Useragent: *
  Disallow: /
  l 允許所有的robot訪問
  Useragent: *
  Disallow:
  或者也可以建一個空文件 /robotstxt file
  l 禁止所有搜索引擎訪問網站的幾個部分(下例中的cgibintmpprivate目錄)
  Useragent: *
  Disallow: /cgibin/
  Disallow: /tmp/
  Disallow: /private/
  l 禁止某個搜索引擎的訪問(下例中的BadBot)
  Useragent: BadBot
  Disallow: /
  l 只允許某個搜索引擎的訪問(下例中的WebCrawler)
  Useragent: WebCrawler
  Disallow:
  Useragent: *
  Disallow: /
  
   常見搜索引擎機器人Robots名字
  
  名稱 搜索引擎
  Baiduspider
  Scooter
  ia_archiver
  Googlebot
  FASTWebCrawler
  Slurp
  MSNBOT
   robotstxt舉例
  下面是一些著名站點的robotstxt
  
  
  
  
  
  
   常見robotstxt錯誤
  
  l 顛倒了順序
  錯誤寫成
  Useragent: *
  Disallow: GoogleBot
  正確的應該是
  Useragent: GoogleBot
  Disallow: *
  l 把多個禁止命令放在一行中
  例如錯誤地寫成
  Disallow: /css/ /cgibin/ /images/
  正確的應該是
  Disallow: /css/
  Disallow: /cgibin/
  Disallow: /images/
  l 行前有大量空格
  例如寫成
  Disallow: /cgibin/
  盡管在標准沒有談到這個但是這種方式很容易出問題
  l 重定向到另外一個頁面
  當Robot訪問很多沒有設置robotstxt文件的站點時會被自動重定向到另外一個Html頁面這時Robot常常會以處理robotstxt文件的方式處理這個Html頁面文件雖然一般這樣沒有什麼問題但是最好能放一個空白的robotstxt文件在站點根目錄下
  l 采用大寫例如
  USERAGENT: EXCITE
  DISALLOW:
  雖然標准是沒有大小寫的但是目錄和文件名應該小寫
  useragent:GoogleBot
  disallow:
  l 語法中只有Disallow沒有Allow!
  錯誤的寫法是
  Useragent: Baiduspider
  Disallow: /john/
  allow: /jane/
  l 忘記了斜槓/
  錯誤的寫做
  Useragent: Baiduspider
  Disallow: css
  正確的應該是
  Useragent: Baiduspider
  Disallow: /css/
  下面一個小工具專門檢查robotstxt文件的有效性
  bin/robotcheckcgi
  
   Robots META標簽
  什麼是Robots META標簽
  Robotstxt文件主要是限制整個站點或者目錄的搜索引擎訪問情況而Robots META標簽則主要是針對一個個具體的頁面和其他的META標簽(如使用的語言頁面的描述關鍵詞等)一樣Robots META標簽也是放在頁面的<head></head>中專門用來告訴搜索引擎ROBOTS如何抓取該頁的內容具體的形式類似(見黑體部分)
  <html>
  <head>
  <title>時代營銷網絡營銷專業門戶</title>
  <meta name=Robots content=indexfollow>
  <meta httpequiv=ContentType CONTENT=text/html; charset=gb>
  <meta name=keywords content=營銷… >
  <meta name=description content=時代營銷網是…>
  <link rel=stylesheet type=text/css>
  </head>
  <body>
  …
  </body>
  </html>
  
  Robots META標簽的寫法
  
  Robots META標簽中沒有大小寫之分name=Robots表示所有的搜索引擎可以針對某個具體搜索引擎寫為name=BaiduSpidercontent部分有四個指令選項indexnoindexfollownofollow指令間以分隔
  INDEX 指令告訴搜索機器人抓取該頁面
  FOLLOW 指令表示搜索機器人可以沿著該頁面上的鏈接繼續抓取下去
  Robots Meta標簽的缺省值是INDEX和FOLLOW只有inktomi除外對於它缺省值是INDEXNOFOLLOW
  
  這樣一共有四種組合
  <META NAME=ROBOTS CONTENT=INDEXFOLLOW>
  <META NAME=ROBOTS CONTENT=NOINDEXFOLLOW>
  <META NAME=ROBOTS CONTENT=INDEXNOFOLLOW>
  <META NAME=ROBOTS CONTENT=NOINDEXNOFOLLOW>
  
  其中
  <META NAME=ROBOTS CONTENT=INDEXFOLLOW>可以寫成
  <META NAME=ROBOTS CONTENT=ALL>
  <META NAME=ROBOTS CONTENT=NOINDEXNOFOLLOW>可以寫成
  <META NAME=ROBOTS CONTENT=NONE>
  需要注意的是上述的robotstxt和Robots META標簽限制搜索引擎機器人(ROBOTS)抓取站點內容的辦法只是一種規則需要搜索引擎機器人的配合才行並不是每個ROBOTS都遵守的
  
  目前看來絕大多數的搜索引擎機器人都遵守robotstxt的規則而對於Robots META標簽目前支持的並不多但是正在逐漸增加如著名搜索引擎GOOGLE就完全支持而且GOOGLE還增加了一個指令archive可以限制GOOGLE是否保留網頁快照例如
  <META NAME=googlebot CONTENT=indexfollownoarchive>
  表示抓取該站點中頁面並沿著頁面中鏈接抓取但是不在GOOLGE上保留該頁面的網頁快照
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25664.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.