GVKun编程网logo

robots.txt文件与robots meta标签的应用(robot.txt的作用)

2

对于robots.txt文件与robotsmeta标签的应用感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解robot.txt的作用,并且为您提供关于asp.net-mvc-4–同一网站的不

对于robots.txt文件与robots meta标签的应用感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解robot.txt的作用,并且为您提供关于asp.net-mvc-4 – 同一网站的不同域的robots.txt文件、magento建立robots.txt文件、Meta标签Robots之NOODP、NOYDIR、Python请求与robots.txt的宝贵知识。

本文目录一览:

robots.txt文件与robots meta标签的应用(robot.txt的作用)

robots.txt文件与robots meta标签的应用(robot.txt的作用)

  robots.txt文件是搜索引擎蜘蛛来到网站后访问的第一个文件,我们在编写时有很多需要注意的地方,如果不注意语法的正确使用,有些语句可能发挥不了应有的作用,会影响搜索引擎对网站的访问。接下来狂人SEO分享下robots文件与robots meta标签的应用。

  robots文件可以指定sitemap的位置,写法是 sitemap:域名/sitemap.xml,这样就告诉搜索引擎蜘蛛这个地址是网站地图,如果我们有一些隐私文件要屏蔽搜索引擎蜘蛛不让其抓取时,可以在robots.txt中写上路径地址,相反网站中没有要屏蔽的内容时,则不用写明。

  示例如下:

  User-agent: *

  Disallow: /bin/

  Sitemap: https://www.krseo.com/sitemap.xml

  如果有个页面不想让搜索引擎收录但却已经收录了,我们可以通过robots meta标签来解决。robots.txt文件主要是限制整个站点或者目录的蜘蛛访问,而 robots meta标签则主要是针对某个具体的页面,此标签放在页面中,专门用来告诉搜索引擎蜘蛛如何抓取该页的内容。

  robots meta标签的基本写法是:,这是我们应该学的SEO基础知识,以下是几项需要特别注意的地方:

  1、在 robots meta标签中,name="robots"表示所有的搜索引擎,也可以针对某个具体的搜索引擎,如针对百度可以写为 name="Baiduspider"。

  2、在content部分有4个指令选项,以英文逗号“,”隔开,分别是:index、follow、noindex、nofollow。

  index 指令告诉搜索引擎蜘蛛可以抓取该页面。

  noindex 指令与index指令相反,表示搜索引擎蜘蛛不可以抓取该页面。

  follow 指令表示搜索引擎蜘蛛可以爬行该页面上的链接。

  notollow 指令与 follow指令相反,表示搜索引擎蜘蛛不可以爬行该页面上的链接。

  综上所述,robots meta标签有以下4种组合:

  当robots meta标签的content值为"index,follow"时,表示这个页面可以被抓取,此页面上的链接也可以被继续爬行,标签可以简写成。

  当robots meta标签的content值为"noindex,nofollow"时,表示这个页面不可以被抓取,此页面上的链接也不可以被继续爬行,标签可以简写成。

  以上是robots.txt文件与robots meta标签用法。当发现网站中某个页面需要屏蔽蜘蛛抓取时,可以在该页面的源代码的和之间添加robots meta标签。

    延伸阅读

  • robots.txt是什么?robotstxt怎么写?

    一、什么是robots.txt?robots是网站和搜索引擎协议的纯文本文件,当一个搜索引擎蜘蛛来访问站点的时候,首先爬行检查根目录是否存在这个文件。如果存在的话,那么就会根据...

asp.net-mvc-4 – 同一网站的不同域的robots.txt文件

asp.net-mvc-4 – 同一网站的不同域的robots.txt文件

我有一个可以从多个不同域访问的ASP.NET MVC 4 Web应用程序。该网站根据请求中的域完全本地化(在概念上类似于 this question)。

我想添加一个robots.txt文件,我想根据域本地化robots.txt文件,但我知道我在站点的文件系统目录中只能有一个物理“robots.txt”文本文件。

使用ASP.NET MVC框架在每个域的基础上实现一个robots.txt文件是最简单/最好的方法(甚至是可能的),以便相同的站点安装向每个域提供内容,但内容的机器人文件是根据所请求的域进行本地化的?

解决方法

这个过程很简单:

控制器/动作方式

>使用您的路线表,将您的robots.txt路径映射到控制器中的操作(我使用控制器和操作作为一个简单的例子来启动),就像给任何其他控制器和给定路径的视图一样。
>在Action中,检查请求中的域,然后为该域选择您的robots.txt内容。
>从磁盘返回相应的文件,如下所示:

> ContentResult并将ContentType设置为“text / plain”
> FilePathResult,如果您的机器人文件只是磁盘上的文件,通过Controller类上的一个帮助程序方法,如File(name,"text/plain")

以下示例假定单个顶级robots.txt文件:

// In App_Start/RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.MapRoute(
    name: "robots",url: "robots.txt",defaults: new { controller = "SEO",action = "Robots" }
);

// The controller:
public class SEOController : Controller {
  public ActionResult Robots() {
    var robotsFile = "~/robots-default.txt";
    switch (Request.Url.Host.ToLower()) {
      case "stackoverflow.com":
        robotsFile = "~/robots-so.txt";
        break;
      case "Meta.stackoverflow.com":
        robotsFile = "~/robots-Meta.txt";
        break;
    }
    return File(robotsFile,"text/plain");
  }
}

那么最简单的方法之一就是确保使用web.config中的runAllManagedModulesForAllRequests来调用所有请求的路由模块(请不要使用它,请参见下一段):

<system.webServer>
  <handlers>
    ...
  </handlers>
  <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

这通常不是一件好事,现在所有的静态文件(css,js,txt)在被转移到静态文件处理程序之前经过托管处理程序。 IIS非常适用于快速提供静态文件(大部分静态文件网站将在cpu之前最大化磁盘I / O方式),因此为避免这种性能受到打击,推荐的方法如下面的web.config示例部分。请注意与Visual Studio MVC 4模板应用程序中的ExtensionlessUrlHandler-Integrated-4.0处理程序的相似性:

<system.webServer>
  <handlers>
    <add name="Robots-Integrated-4.0"
         path="/robots.txt" verb="GET" 
         type="System.Web.Handlers.TransferRequestHandler" 
         preCondition="integratedMode,runtimeVersionv4.0" />
    ... the original handlers ...
  </handlers>
  <modules runAllManagedModulesForAllRequests="false" />
</system.webServer>

优点/缺点

一旦开始使用这种方法,这种方法的优点就会变得显而易见:

>您可以通过使用帮助程序生成Action url动态生成robots.txt文件,然后您可以将模板robots.txt文件的全部/部分添加到其中。
>您可以检查机器人用户代理,以便每个机器人用户代理返回不同的机器人文件
>您可以使用相同的控制器输出网页抓取工具的sitemap.xml文件
>您可以从容易由站点用户管理的数据库表中管理漫游器内容。

在缺点,

>您的漫游器文件现在使您的路由表复杂化,并不是真的需要
>您将需要优化缓存以防止持续的磁盘读取。但是,对于您采取的任何方式,这是一样的。

还要记住,不同的robots.txt文件可以用于不同的子目录。这通过路由和控制器方法变得棘手,所以IHttpHandler方法(下面)对于这种情况来说更容易。

IHttpHandler方法

您还可以使用自定义IHttpHandler registered in your web.config来实现此功能。我强调自定义,因为这样可以避免使所有控制器看到所有请求(使用runAllManagedModulesForAllRequests =“true”),这与在路由表中添加自定义路由处理程序不同。

这也可能是一个比控制器更轻便的方法,但您必须拥有巨大的网站流量才能注意到差异。其他好处是可以使用的代码段,可以用于所有的网站。您还可以添加自定义配置部分来配置机器人用户代理/域名/路径映射到漫游器文件。

<system.webServer>
  <handlers>
    <add name="Robots" verb="*" path="/robots.txt"
         type="MyProject.RobotsHandler,MyAssembly" 
         preCondition="managedHandler"/>
  </handlers>
  <modules runAllManagedModulesForAllRequests="false" />
</system.webServer>
public class RobotsHandler: IHttpHandler
{
  public bool IsReusable { get { return false; } }
  public void ProcessRequest(HttpContext context) {
    string domain = context.Request.Url.Host;
    // set the response code,content type and appropriate robots file here
    // also think about handling caching,sending error codes etc.
    context.Response.StatusCode = 200;
    context.Response.ContentType = "text/plain";

    // return the robots content
    context.Response.Write("my robots content");
  }
}

robots.txt在子目录中

要为子目录和站点根目录提供机器人,您无法轻松使用控制器方法;在这种情况下,处理程序方法更简单。这可以配置为将robots.txt文件请求提取到任何子目录,并相应地处理它们。然后,您可以选择为某些目录返回404,或为其他目录返回机器人文件的子部分。

我特别提到这里,因为这种方法也可以用于sitemap.xml文件,为站点的不同部分提供不同的站点地图,多个彼此引用的站点地图等。

其他参考文献:

> Scott Hanselman: Back to Basics: Dynamic Image Generation,ASP.NET Controllers,Routing,IHttpHandlers,and runAllManagedModulesForAllRequests
> MSDN – How to: Register HTTP Handlers

magento建立robots.txt文件

magento建立robots.txt文件

# Website Sitemap
Sitemap: http://www.yourdomain.com/sitemap.xml  
 
# Crawlers Setup
User-agent: *
Crawl-delay: 10
 
# Allowable Index
Allow: /*?p=
Allow: /catalog/seo_sitemap/category/
Allow:/catalogsearch/result/
 
# Directories
Disallow: /404/
Disallow: /app/
Disallow: /admin/
Disallow: /cgi-bin/
Disallow: /downloader/
Disallow: /includes/
Disallow: /js/
Disallow: /lib/
Disallow: /magento/
Disallow: /media/
Disallow: /pkginfo/
Disallow: /report/
Disallow: /skin/
Disallow: /stats/
Disallow: /var/
 
# Paths (clean URLs)
Disallow: /catalog/product_compare/
Disallow: /catalog/category/view/
Disallow: /catalog/product/view/
Disallow: /catalogsearch/
Disallow: /checkout/
Disallow: /control/
Disallow: /contacts/
Disallow: /customer/
Disallow: /customize/
Disallow: /newsletter/
Disallow: /poll/
Disallow: /review/
Disallow: /sendfriend/
Disallow: /tag/
Disallow: /wishlist/
 
# Files
Disallow: /cron.php
Disallow: /cron.sh
Disallow: /error_log
Disallow: /install.php
Disallow: /LICENSE.html
Disallow: /LICENSE.txt
Disallow: /LICENSE_AFL.txt
Disallow: /STATUS.txt
 
# Paths (no clean URLs)
Disallow: /*.js$
Disallow: /*.css$
Disallow: /*.php$
Disallow: /*?p=*&
Disallow: /*?SID=
网上还有种写法,我也不知道哪个更好,这个效果该怎么看。。。
User-agent: *
Disallow: /index.php/
Disallow: /*?
Disallow: /*.js$
Disallow: /*.css$
Disallow: /checkout/
Disallow: /tag/
Disallow: /catalogsearch/advanced/
Disallow: /review/
Disallow: /app/
Disallow: /downloader/
Disallow: /js/
Disallow: /lib/
Disallow: /media/
Disallow: /*.php$
Disallow: /pkginfo/
Disallow: /report/
Disallow: /skin/
Disallow: /var/
Disallow: /catalog/
Disallow: /customer/
Disallow: /install/
Disallow: /wishlist/
Allow: /catalogsearch/result/?q
发现一个插件,可以试试看 http://www.magentocommerce.com/magento-connect/robots-txt-6783.html

Meta标签Robots之NOODP、NOYDIR

Meta标签Robots之NOODP、NOYDIR

NOODP(No Open Directory Project):在搜索结果中不使用Open Directory Project中的描述信息作为其摘要信息。

NOYDIR(No Yahoo Directory):在搜索结果中不使用Yahoo Directory中的描述信息作为其摘要信息。

网站如果提交到Yahoo Directory或者DMOZ这些开放分类目录中,这些目录将记录网站说明信息。有时搜索引擎很可能采用开放目录里面网站的信息,而不采用现有的网址信息,导致搜索引擎的信息和网站的现有信息不匹配。

NOODP 和 NOYDIR 就是要让搜索引擎不使用这些开放分类目录上的信息,而使用网站的现有信息。 

<Meta name="搜索引擎类型" content="NOODP,NOYDIR" />

<!-- 此网页不允许Google采用开放目录里的网站信息所为搜索结果 -->
< Meta name=”googlebot” content=”noodp” /> 

<!-- 限制所有搜索引擎 -->
< Meta name=”robots” content=”noodp,noydir” />

搜索引擎机器人(Specific Search Robots)列表

  搜索引擎           Robots(机器人)   
  Google         --  googlebot 
  MSN Search     --  msnbot 
  Yahoo          --  yahoo-slurp
  Baidu          --  baiduspider  
  Ask/Teoma      --  teoma 
  Cuil           --  twiceler 
  GigaBlast      --  gigabot 
  Scrub The Web  --  scrubby 
  DMOZ Checker   --  robozilla 
  Nutch          --  nutch 
  Alexa/Wayback  --  ia_archiver 
  Naver          --  naverbot,yeti
  AltaVista      --  scooter
  AllTheWeb      --  FAST-WebCrawler
  Inktomi        --  Slurp

特殊用途搜索引擎机器人(Specific Special Bots)列表

  搜索引擎           Robots(机器人)      Google Image   --  googlebot-image    Google Mobile  --  googlebot-mobile    Yahoo MM       --  yahoo-mmcrawler    MSN PicSearch  --  psbot    SingingFish    --  asterias    Yahoo Blogs    --  yahoo-blogs/v3.9

Python请求与robots.txt

Python请求与robots.txt

我有一个供个人使用的脚本,它会刮掉一些网站以获取信息,直到最近它工作得很好,但似乎有一个网站增加了它的安全性,我再也无法访问其内容了.

我正在使用带有请求的python和BeautifulSoup来抓取数据,但是当我尝试使用请求获取网站的内容时,我会遇到以下情况:

‘< html>< head>< Meta NAME =“ROBOTS”CONTENT =“NOINDEX,nofollow”>< / head>< iframe src =“/ _ Incapsula_Resource?CWUDNSAI = 9_4E402615& incident_id = 133000790078576866-343390778581910775& edet = 12& cinfo = 4bb304cac75381e904000000“frameborder = 0 width =”100%“height =”100%“marginheight =”0px“marginwidth =”0px“>请求不成功. Incapsula事件ID:133000790078576866-343390778581910775< / iframe>< / html>‘

我做了一些研究,看起来这就是阻止我:http://www.robotstxt.org/meta.html

有什么方法可以说服网站我不是恶意机器人吗?这是一个我每天运行一次的脚本,只需要一点点来源,所以无论如何我都不是他们服务器上的负担.只是有人用脚本让事情变得更容易:)

编辑:尝试切换到机械化并忽略robots.txt那样,但我没有得到403 Forbidden响应.我想他们已经改变了他们对刮擦的立场,还没有更新他们的TOS.是时候去B计划,不再使用网站,除非有人有任何其他想法.

解决方法

最可能发生的是服务器正在检查用户代理并拒绝访问机器人使用的默认用户代理.

例如,请求将user-agent设置为类似python-requests / 2.9.1的内容

您可以指定自己的标题.

url = "https://google.com"
UAS = ("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1","Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/41.0.2228.0 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/41.0.2227.1 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/41.0.2227.0 Safari/537.36",)

ua = UAS[random.randrange(len(UAS))]

headers = {'user-agent': ua}
r = requests.get(url,headers=headers)

今天关于robots.txt文件与robots meta标签的应用robot.txt的作用的分享就到这里,希望大家有所收获,若想了解更多关于asp.net-mvc-4 – 同一网站的不同域的robots.txt文件、magento建立robots.txt文件、Meta标签Robots之NOODP、NOYDIR、Python请求与robots.txt等相关知识,可以在本站进行查询。

本文标签: