网络机器人(Robots): 是福还是祸?

Apache服务的安全配置 <!--google_ad_client = "pub-5169656809800079";/* 728x90, 创建于 09-2-10 */google_ad_slot = "3972675419";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"sr 阅读详情

网络机器人(Robots): 是福还是祸?

Martijn Koster, NEXOR

April 1995
[1997: Updated links and addresses]

Codehunter[程式猎人]翻译

摘要

机器人在万维网上使用已经有一年多了(相对于1995年)。在这段时间中,它们担当着有用的任务,同时也对网络造成了很大的破坏。本文着重研究机器人在资源收寻方面的优势以及劣势。讨论和比较一些标新立异的资源收寻策略。最后得出结论,在很长的一段时间内,机器人将被广泛的使用,但是随着网络的增大,这些机器人将会变得缺乏效率并且会出现更多的问题。

引言

在过去的几年中万维网[1]已经变得非常大众化了,现在她已经成为因特网上主要的信息发布的平台。随着网络站点和文档不断的增加,经由手工点击超联接的方法浏览网页资源已经变得不可能了,更不用说是一种有效率的资源探索的方法了。

这个问题促使了自动浏览“机器人”的实验。网络机器人是一个通过得到文档然后分析出网页超链接结构,以得到的文档为参考,周而复始得到所有文档的程序。这些程序有时被叫做“蜘蛛”,“网络漫游者”或“网络蠕虫”。这些名字或许很吸引人,但它可能会使人误解,“蜘蛛”和“网络漫游者”给人一种它自己能自动移动的印象,而“网络蠕虫”能自己繁殖,就好像声名狼藉的因特网蠕虫病毒[2]。事实上机器人作为一个单独的软件系统,它仅仅是通过标准的环球网协议从远程站点获取信息的工具。

机器人的用处

机器人能处理很多有用的工作。

统计分析

第一个机器人[3]被用来发现并计数WEB服务器的数目。其他统计包括每个服务器的文档平均数,某些类型文件的比例,网页大小的平均数,网络互联的程度等

维护

一个很重要的难点是维护导航到其他网页的超文本结构,当这些被涉及的网页被移动了,这些联接可能会成为变成“死联接”(dead link)。 现在还没有一个统一的机构来主动通知网页维护人员来修改联接。一些服务器,如CERN HTTPD,能够纪录因死联接而造成得失败请求,根据死链接找到网页,然后手工解决。这种方法不太实用,事实上当网站作者注意到这些时他们只能发现网页包含了坏联接,在许多情况下用户是靠电子邮件通知他们的。

机器人可以校验索引,诸如MOMspider [4],能够帮助作者定位那些死联接,同时帮助超文本结构的维护。机器人也能够帮助维护网页内容,一般通过检测HTML [5]的一致性,一致设计方针,有秩序的更新等等。但这不是普通的惯例。正如可提出证据加以证明的那样,这种功能应该被集成到HTML开发环境中,当文档改变时,这些检测能被重复执行,这些问题很快能被解决了。

镜像

镜像是一个维护FTP档案的流行技术。一个镜像通过FTP拷贝整个目录树,并且规律的得到已经被改变的文档。镜像允许你分享这些文件,减少因主机错误而导致的多余拷贝,并能加快访问速度,减少访问费用,实现离线浏览。

在没有出现成熟的镜象工具时机器人能够被用来镜像网站。有些机器人能够得到一个子目录的文件并储存到本地。但是它不能轻易的更新那些被改动的网页。第二个问题是那些被拷贝的网页需要重写:那些已经被镜像的网页可能需要改变超联接的指向,那些关系到未被镜像的页面的联接需要展开成绝对联接。从性能考虑对镜像工具的需求是尽量减少对成熟的高速缓存服务器[6]到来的依赖,选择性的更新,能够保证一个缓存的文档被更新,并且能够最大程度的自维护。不管用什么方法,我们期望镜像工具能及时的被开发出来。

探索资源

也许机器人最令人兴奋的应用是探索资源。在任何人们不能够拷贝大量信息的场所,最能够吸引人的就是让计算机做这些工作,一些机器人囊括了大量的网页,并提供了访问这些信息的搜索引擎。

这就意味着一个网络用户能够联合浏览和查找来定位一个信息,这种方法胜于单独依靠浏览;即使数据库不能包含你所需要的项目,它可能包含相关与目标信息的网页。

第二个优势是这些数据库能够自动而规律的更新,因此死链接将被察觉并删除。这和手工维护文档比较锁碎和不全面,形成了鲜明的对比。机器人的探索资源的功能将在下文做更深的讨论。

组合使用

一个机器人能够处理多项任务,如RBSE Spider [7]能够统计分析得到的文档也提供了资源探索的功能。令人遗憾的是像这种组合功能的机器人是如此的稀少。

运作的花费和危险

机器人的使用带来了很高的代价,特别当他们工作在遥远的英特网上。在这些段落中我们将看到机器人在环球网中昂贵的需求所带来的危险。

网络资源和服务器负荷

机器人需要相当可观的带宽。首先机器人的运作需要不断的额外延长周期,常常是一个月。为了加快执行速度许多机器人同步执行,导致在一定时间内带宽总是处于高使用状态。如果机器人在短时间内做了大量的文件获取(“快速开火rapid fire“),就连远程的网络也能感觉到网络资源的紧张。这能够导致其他用户暂时性的带宽不足,特别是在地带宽的链路中,比如英特网还没有一个成熟的处理负载平衡的协议。

习惯上,因特网已经被认识到是免费的,个人用户无需为他的操作支付费用。这个理解是建立在未经详细调查的基础上的,特别像公司的用户就能直接感觉到网络使用同花费的关系。一个公司能够感觉到为他们的(潜在的)客户服务是值这些花费的,但是自动传输的机器人却不能够体会到这些费用。

除了微网络的需求,机器人还对服务器提出了外加需要。依赖于频繁的从服务器请求文档能够导致一个相当大的负载,这将导致对其他网络用户的访问服务下降。特别当这个主机还被用来做其他目的是,是完全不能接受的。这里是一个试验,笔者运行了一个模拟程序,同时在他的服务器上获取20个文件,服务器同时运行着Plexus服务/Sun 4/330(SUN公司的计算机型号)。在几分钟内机器慢的像一个爬虫,并且不能做任何事。其实就是连续的获取所导致的结果。仅仅在我写本文的这个星期,一个机器人用快速开火的方法访问了我的站点。过了170个连续的获取后,我的服务器崩溃了。

这些事实显示快速开火应该要避免。不幸的是一些流行的浏览器(如Netscape)也因为能够并发地获取在线图片而忽略了这个问题。环球网协议,HTTP[8],已经显示出这种传输的低效率,新制订协议将改正这些问题[10]。

更新的内务操作

我们已经提及机器人能够自动更新数据库。但是不幸的是在环球网上还没有一个有效的文档更新控制机制;没有一个请求能够确定某一组URL(统一资源定位符)已经被移动了,删除了或更改了。(译者注:HTTP1.0已经加入获取最后更改时间的请求)。

错误的执行

新开发的机器人尤其会增加主机和网络的过度劳累。即使协议和URL的发送是正确的,并且机器人也正确的处理了相应协议(包括一些高级的特性如重定位(redirection)),还是会出现不可预料的问题。

笔者已经观察到同样的机器人访问他的服务器。虽然在某些情况下,这是由一些使用网站的人为了测试而导致的(代替一个本地服务器),在某些情况下显然是因为松散的执行。重复的获取一般发生在某一方没有存储对地址的访问历史(这是不可原谅的),或者是当机器人不能辨别出那些语法上相同的URL,如不同的域名指向同一个IP地址,或URL不能被机器人规范,如"foo/bar/../baz.html" 和"foo/baz.html"是一样的.

一些机器人会得到一些他们不能处理并忽略掉的文档类型,如GIF和附言。

还有一些危险是,有一些接近无限的网页空间。举个例子一个脚本返回一个网页,由这个网页链接到一个更深层的网页。如开始于"/cgi-bin/pit/",链接到"/cgi-bin/pit/a/", "/cgi-bin/pit/a/a/", 等等。因此这些URL空间能够欺骗机器人使它陷入其中,这种陷阱通常被叫做“黑洞”。关于机器人排斥(Exclusion)的一些标准在下文将作讨论。

编写目录问题

由机器人产生的资源搜索数据库很流行是无可厚非的。用户根据一定规则来使用这个数据库用来定位资源。然而,机器人在网络资源探索的适用性方面的限制还有一些争议。

网络中有太多的信息,而且它都是动态。

判断一个获取信息途径的效率的尺度是 "查全率(recall)",即实际上被发现的所有有关的文件的分数。 Brian Pinkerton [15] 规定的查全率在因特网指数标定系统中是正确的, 就好像发现相关的文档一样不是问题.然而,如果一把英特网上整套可利用的数据视为一种基础,并非由机器人产生的数据库,查全率不可能是高的,如同数据的数量是巨大的,而且变化很时常发生一样。当网络生长,因此在实践中机器人数据库不可能包含特别细节的资源,随着环球网的增长情况将变得更坏。

决定什么信息是包含的或者排斥的

机器人不能自动决定是否一个给定的网页应该被包含在他的索引中。WEB服务器可能为那些与本地上下文相关的文档(如一个内部的图书馆索引),他们仅仅是暂时存在,或为了其他目的。从某种程度上说, 当机器人在操作的时候可能没有被识别的时候,对机器人是否包括一些网页的决定也依赖于使用者。在实践中机器人最后几乎存储所有文件。注意即使一个机器人能够决定是否在他的数据库中排斥一个特殊的网页,但是他们已经花费了得到这个文件的费用;机器人对这个高花费文档的忽略是非常浪费的。

试图减轻这种情况,一些机器人组织已经采用了“机器人排斥标准”。这个标准描述了使用一个简单的文本文件,把它放在服务器众所周知的地方("/robots.txt")来指定那方面的URL空间应该被机器人过滤掉(见图一)。这个方法也能够用来避免机器人陷入黑洞。个人机器人能够给他一个特殊的指令,就好像某些机器人可以比其他机器人更敏感,或他们知道专门研究一个特殊的领域。这个标准是非官方的,但他实施起来非常简单,并且有相当大的公众压力来促使机器人准守。

决定怎样遍历网站是一个相关的问题。给定的大多数WEB服务器是层次组织的,一个广度优先(breadth-first)遍历从顶层到有限的深度或许能够比深度优先(depth-first)更快的发现一个更大的范围和更多同一层的文档和服务器,这种方法更适合资源的探索。然而,深度优先的遍历可能更容易发现那些能够链接到其他地址的个人主页,潜在的新的地址,新的服务器,因此可能更容易发现新的站点。

    # /robots.txt for http://www.site.com/
 
    
    User-agent: *               # attention all robots:
    Disallow:   /cyberworld/map # infinite URL space
    Disallow:   /tmp/            # temporary files
Figure 1: An example robots.txt file

概括文档

概括文档和索引网页完全不同。早期的机器人只是简单的存储文档的标题和锚的描述文本,但是新的机器人使用了更高级的机制,全盘考虑整个文档的内容。

这些方法有一些很好的概括标准,能够自动应用到所有网页,但是对作者来说这种方法和手工标定一样不是很有效率。HTML提供了一个机制能够在文档上附上META信息,只要指定一个 元素,如" .然而,指定这个值的属性的标记没有被语义学定义,这个状况严重的制约了这个标记的接受度,而这个机制却非常有用的。

获得文档的总数同查询到的相关文档的比例,这个值的准确度很低。高级特性如布尔运算(Boolean operators),加权匹配(weighted matches)如广域信息服务系统(WAIS),或相关性反馈(relevance feedback)能够降低这个值得准确度,因特网给我带来的巨大信息更加重了这个问题。

文档分类

环球网用户经常需要一个主题层次文档。GENVL[17]允许手工维护主题层次,这方面很多问题的介绍超出了本文所讨论的范围。机器人能够呈现一个主题层次的视图是非常有用的,但是这需要一些自动档案分类的机制[18]。

上文讨论的META标记给作者提供了一种归档他们自己文档的机制。当分类系统使用时怎样应用它就成为问题了。连传统的图书馆也没有使用单一的标准系统,而采用了其中的一些,并且采用了他们自己协定来实施它。在环球网上实施统一解决方案是没有希望的。

确定文档的结构

也许最困难的是网络不是由一组一成不变的相同意义的文件组成。通常服务器是由一组网页集合而成: 有欢迎页, 也许是含有表格的网页, 也许含有背景, 还有一些有个别的特殊数据。服务供给者在欢迎页上宣布各种服务。机器人并没有什么方法来区别这些网页,它可能发现一个链接比如一个数据或一个背景图像,这样编入索引中的文件并非是那些主要的页。这样的事情就能发生:机器人储存了关于"The Perl FAQ"的一些林乱子集的地址,而并非是它所涉及的内容。|如果在网络中网页之间没有链接,那么这个问题是可以被避免的。

以上问题描述的是网页内容是有特殊的意义的,仅仅依靠一个访问结构,而脱离的上下文,往往理解是错误的。例如一个网页描述了一个项目的目标可能是关于"The project",没有完整详细的名字,或给了一个链接到欢迎页的链接。另一个问题是已经删除的URL.通常系统管理员在重组织他们的URL结构时,他们会提供一个机制来向后兼容以前的URL结构,来防止坏链接。在一些服务器上,这个机制可能用重定向来实现,当用户访问旧的URL时HTTP返回一个新的URL个用户。然而符号链接不可能告诉机器人这些链接的不同。一个索引机器人会存储这些被反对的链接,系统管理员提供向后兼容的机制是产生这种情况的必要条件。

一个相关的问题是机器人可能会索引一个镜像,而不是原始站点。如果镜像和原始内容都访问了,则数据库就有了双份信息,并且带宽也会被重复获取而浪费。如果仅仅索引了镜像,那么用户所访问到的可能就不是最新更新的信息了。

规范

我们已经看到机器认识很有用得,但是它需要很高的带宽,并且他们在索引全球网时还有一些基本原则问题。因此一个机器人作者在开发和部署一个机器人时需要权衡这些问题。这已经成为一个伦理上的问题了“一个机器人的操作的花费对其他人是否是正当的?”。这是一个灰色的领域,人们对此有着广泛的争议。

当一些可接受争议最初变成事实后 (在一些机器人加倍服务器上的负荷的事件之後)开发机器人的作家揭露一组指导方针 [19],如一个第一步要识别问题而且促进理解。这些指导方针的概述如下所示:

  • 重新考虑:你是否真的需要一个机器人;
  • 责任:确定机器人能被服务器管理员识别,并且能够容易的联系作者;
  • 在本地机器上测试;
  • 适中的资源消耗:防止快速发射,消除多余的没必要的获取;
  • 遵循机器人排斥标准;
  • 监视操作:不断的察看机器人的日志;
  • 共享成果: 使得器人原始成果或一些高级成果能被别的机器人共享

David Eichman [20]对服务器代理(这个机器人建立的基于面向公众的信息)和用户代理(这个机器人只是为了单一用户入客户端机器人)做了一个更深远的区别,并且已经从道德规范的角度作了高级的鉴别和区分。

事实上许多机器人的开发者已经处理了这些指导方针,并且渴望最小化这些影响。机器人邮件列表加速了这些新的问题的讨论,并且这些关于机器人的公众看法的活动邮件列表提供了一个有效的压制机器人的行为的团体[21]。

机器人领域的成熟意谓着会有更少的事情来扰乱的数据供给者。尤其机器人的排斥标准意谓着那些不允许机器人的人能阻止它的访问。然而,随着英特网的逐渐增加,特别在环球网上更多的机器人的出现是不可避免的,出现一些没有适当行为的机器人也是有可能的。

资源获取的两个可供选择的方法

机器人有望继续被用在因特网信息的获取上。然而,我们看到了在机器人的使用中会出现这些实际问题,基本原则问题和伦理问题,探究一些可供选择的方法是值得的,如ALIWEB [22]和Harvest [23].

ALIWEB有一个简单的模型来为人们在网上分布索引服务,基于Archie [24]。在这个模型中,索引信息的集合在网上任何主机上都有效。仅仅索引本地资源,而非第三方的资源。在ALIWEB上,这种模型使用了IAFA 模板 [25],这种模板的信息资源类型基于简单文本格式(见图2)。这种模板能被手工生成,或者自动创建,例如在一个文档树中列出标题和META元素。ALIWEB 的收集引擎通过普通的WEB访问协议来得到这些索引文件,并且把这些文件组合到一个可查询的数据库中。注意它不是一个机器人,它不是递归的得到文档来生成索引的。

    Template-Type: SERVICE
    Title:         The ArchiePlex Archie Gateway
    URL:           /public/archie/archieplex/archieplex.html
    Description:   A Full Hypertext interface to Archie.
    Keywords:    Archie, Anonymous FTP.
    
    Template-Type: DOCUMENT
    Title:         The Perl Page
    URL:           /public/perl/perl.html
    Description:   Information on the Perl Programming Language.
                   Includes hypertext versions of the Perl 5 Manual
                   and the latest FAQ.
    Keywords:    perl, programming language, perl-faq
图 2: 一个 IAFA 索引文件

这个方法有一些优点。人工建立索引的质量和自动更新的机制相结合。这种信息的集成远高于传统的“活动表” "hotlists",仅仅维护本地的索引信息。因为这些信息是计算机可读的格式,查找接口能够提供额外的方法来约束查询。仅得到索引信息,这样网络费用就非常少。模型和索引文件的简单使得信息提供者能够立刻参与。

这种方法有一些劣势。手工维护索引信息给信息提供者带来了巨大的负担,但好在实际中主服务器的索引信息不需要频繁的改动。从TITLE和META标记生成索引的系统已经在实验中,但是这将需要一个本地机器人,并且索引的质量是令人担忧的。另一个限制是当前的信息提供商不得不将它的索引信息文件在一个中央登记处注册,这就限制了可伸缩性。最后是更新的效率没有优化,当索引文件中仅仅一个记录改变了,也要被整个获取。

ALIWEB从1993年10月使用至今,它的成绩已经受到赞扬。主要操作的困难在于对其缺乏了解;最初人们经常试图去注册他们的自己的HTML文件而不是IAFA索引文件。另一个问题是ALIWEB作为一个个人项目它是运行在分时基础上的并且没有收到任何资金,因此发展比较缓慢。

Harvest 是一个分布式的资源探索的系统由Internet Research Task Force Research Group on Resource Discovery (IRTF-RD)发行,并提供了一个自动索引文档内容的软件系统,高效率的复制并储存远程主机上的索引信息,最后通过一个接口来查询这些数据。最初对这个系统的反应是很肯定的。

Harvest的一个不利条件是它是一个大而复杂的系统需要相当可观的人力和计算资源,这个劣势使得它离那些信息提供者很远。

Harvest的使用为交互式的现存数据库形成一个普通的平台大概是最令人激动的方面。Harvest非常直接的为其它系统提供了和它交互工作的平台;试验证明ALIWEB能作为Harvest的一个代理程序。这个机制给了ALIWEB储存和查找Harvest的功能,并提供Harvest一个低费用的入口机制。

在资源探索方面这两个系统作为机器人的替代品是非常吸引人的:ALIWEB 提供一个简单而高级的索引, Harvest提供了使用低级信息进行全面的索引系统。然而,没有一个系统是针对第三方的,是消极的参与,为此机器人将被期望继续在这个目的而使用,除了和其它系统合作的场合例如像ALIWEB 和 Harvest那样。

结论

在今天的万维网上,机器人被用来实现许多不同的目标,包括全球资源的探索。在机器人的应用中有一些应用的基本原则的和伦理有关的问题。随着机器人的增长应用的问题和伦理有关的问题已经作为一种经验,但是有可能会继续导致一些偶然的问题。基本原则的问题限制了机器人的发展。其他方法如ALIWEB和Harvest非常有效率,并能给作者一个管理自己站点索引信息的平台。我们期望这样的系统将流行起来,并将和机器人交互式工作。然而在很长的一段时间里机器人在环球网上遍历探索资源将变得非常缓慢,昂贵,并且效率低下。

参考

Ø         Berners-Lee, T., R. Cailliau, A. Loutonen, H.F.Nielsen and A. Secret. "The World-Wide Web". Communications of the ACM, v. 37, n. 8, August 1994, pp. 76-82.

Ø         Seeley, Donn. "A tour of the worm". USENINX Association Winter Conference 1989 Proceedings, January 1989, pp. 287-304.

Ø         Gray, M. "Growth of the World-Wide Web," Dec. 1993. http://www.mit.edu:8001/aft/sipb/user/mkgray/ht/web-growth.html >

Ø         Fielding, R. "Maintaining Distributed Hypertext Infostructures: Welcome to MOMspider's Web". Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Berners-Lee, T., D. Conolly at al., "HyperText Markup Language Spacification 2.0". Work in progress of the HTML working group of the IETF. ftp://nic.merit.edu/documents/internet-drafts/draft-ietf-html-spec-00.txt >

Ø         Luotonen, A., K. Altis. "World-Wide Web Proxies". Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Eichmann, D. "The RBSE Spider - Balancing Effective Search against Web Load". Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Berners-Lee, T., R. Fielding, F. Nielsen. "HyperText Transfer Protocol". Work in progress of the HTTP working group of the IETF. ftp://nic.merit.edu/documents/internet-drafts/draft-fielding-http-spec-00.txt >

Ø         Spero, S. "Analysis of HTTP Performance problems" July 1994 http://sunsite.unc.edu/mdma-release/http-prob.html >

Ø         Spero, S. "Progress on HTTP-NG". http://info.cern.ch/hypertext/www/Protocols/HTTP-NG/http-ng-status.html >

Ø         De Bra, P.M.E and R.D.J. Post. "Information Retrieval in the World-Wide Web: Making Client-based searching feasable". Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Spetka, Scott. "The TkWWW Robot: Beyond Browsing". Proceedings of the Second International World-Wide Web Conference, Chicago United States, October 1994.

Ø         Slade, R., "Risks of client search tools," RISKS-FORUM Digest, v. 16, n. 37, Weds 31 August 1994.

Ø         Riechen, Doug. "Intelligent Agents". Communications of the ACM Vol. 37 No. 7, July 1994.

Ø         Pinkerton, B., "Finding What PEople Want: Experiences with the WebCrawler," Proceedings of the Second International World-Wide Web Conference, Chicago United States, October 1994.

Ø         Koster, M., "A Standard for Robot Exclusion," < URL: http://www.robotstxt.org/wc/exclusion.html >

Ø         McBryan, A., "GENVL and WWWW: Tools for Taming the Web," Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Kent, R.E., Neus, C., "Creating a Web Analysis and Visualization Environment," Proceedings of the Second International World-Wide Web Conference, Chicago United States, October 1994.

Ø         Koster, Martijn. "Guidelines for Robot Writers". 1993. http://www.robotstxt.org/wc/guidelines.html >

Ø         Eichmann, D., "Ethical Web Agents," "Proceedings of the Second International World-Wide Web Conference, Chicago United States, October 1994.

Ø         Koster, Martijn. "WWW Robots, Wanderers and Spiders". http://www.robotstxt.org/wc/robots.html >

Ø         Koster, Martijn, "ALIWEB - Archie-Like Indexing in the Web," Proceedings of the First International World-Wide Web Conference, Geneva Switzerland, May 1994.

Ø         Bowman, Mic, Peter B. Danzig, Darren R. Hardy, Udi Manber and Michael F. Schwartz. "Harvest: Scalable, Customizable Discovery and Access System". Technical Report CU-CS-732-94, Department of Computer Science, University of Colorado, Boulder, July 1994.

Ø         Deutsch, P., A. Emtage, "Archie - An Electronic Directory Service for the Internet", Proc. Usenix Winter Conf., pp. 93-110, Jan 92.

Ø         Deutsch, P., A. Emtage, M. Koster, and M. Stumpf. "Publishing Information on the Internet with Anonymous FTP". Work in progress of the Integrated Internet Information Retrieval working group. ftp://nic.merit.edu/documents/internet-drafts/draft-ietf-iiir-publishing-02.txt >

认识网络爬虫(一看秒知) 指访问全互联网资源的网络爬虫。的网页,这样可以有效地减少网页的下载量,减少访问时间和存储空间的耗费,但是增加了。情热点,跟踪目标话题,并根据一定的标准采取相应的舆情控制与引导措施。放到自己的平台上展示,并提供横向数据的比较,帮助用户寻找实惠的商品价格。运用网络爬虫技术,不断地访问交通出行的官方售票网站刷新余票,一旦发现有新的余票便。力的数据支持,还能为中小型网站的推广引流提供有效的渠道,给我们的生活带来了极大的。即便如此,网络爬虫的抓取行为仍会给网站增加不小的压力,严重时甚至可能影响对网。 阅读详情

相关推荐

Python 网络爬虫的基本流程及 robots 协议详解

Python 网络爬虫的基本流程是数据采集的技术框架,而 robots 协议是规范爬虫行为的道德与技术准则。掌握请求发送、内容解析、数据存储和策略控制的核心技巧,同时严格遵守 robots 协议及相关法律法规,才能开发出高效、合规的爬虫程序。在实际应用中,开发者需始终平衡数据需求与网站权益,推动网络爬虫技术的健康发展。

srlsong的博客 1347

robots.txt是干什么的?底层原理是什么?

"Disallow: /private/"表示不允许爬虫访问以"/private/"开头的页面或路径。而"Allow: /public/"表示允许爬虫访问以"/public/"开头的页面或路径。常用的指令包括"Allow"(允许访问)和"Disallow"(不允许访问)。一些不遵守规则的爬虫可能会忽略robots.txt文件,因此敏感或私密的内容不应仅依赖于robots.txt文件来保护。robots.txt是一种用于网站的文本文件,用于指示搜索引擎爬虫(也称为网络蜘蛛)哪些页面可以被访问或不被访问。

长风破浪会有时的博客 1227

python 网络爬虫的Robots协议

网络爬虫的尺寸大致分为3种: 而第一种大致占到了90%。由于网络爬虫的存在,服务器会因为网络爬虫造成很大的资源开销,比如一个普通人一定时间内访问上十次,而爬虫可能会访问十万次或者百万次。如果一个服务器性能较差,可能会承受不来这个规模的访问。因此网络上对爬虫有一定的制约,对于一些不友好的爬虫,甚至可能会涉及到触犯到法律。   现在一般的网站都会对爬虫做出限制,大致分为两种: 现在说一...

k_koris的博客 3163

爬虫出现Forbidden by robots.txt

先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决。 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息Forbidden by robots.txt,看来是请求被拒绝了。开始因为是淘宝页面有什么保密机制,防止爬虫来抓取页面,于是在spider中填入各种header信息,伪装成浏览器,结果还是不行。。。用

菜鸡瞎讲 3万+

【基础】【Python网络爬虫】【1.认识爬虫】什么是爬虫,爬虫分类,爬虫可以做什么

认识爬虫 1.什么是爬虫 2.爬虫可以做什么 3.为什么用 Ptyhon 爬虫 4.爬虫的分类 通用爬虫 聚焦爬虫 功能爬虫 增量式爬虫 分布式爬虫 5.爬虫的矛与盾(重点) 6.盗亦有道的君子协议robots 7.爬虫合法性探究

weixin_43612602的博客 2527

告别安装报错!保姆级教程:用阿狸狗破戒大师V3.2.6搞定Cadence 17.4完整安装与补丁

本文提供Cadence 17.4的完整安装与破解教程,特别针对国内用户常见问题优化。从前期准备、镜像处理到阿狸狗破戒大师V3.2.6的智能破解,再到补丁管理与性能调优,详细指导每一步操作,确保一次性安装成功并提升设计效率。

weixin_30632089的博客 834

如何防止robot骚扰你的网页

今早在www.aspalliance.com上看到一篇文章(Stopping Automated Web Robots Visiting ASP/ASP.NET Websites,http://aspalliance.com/1018_Stopping_Automated_Web_Robots_Visiting_ASPASPNET_Websites),主要是讲了下如何采取一些措施,防止robot过...

jackyrongvip的专栏 205

AlphaFold-multimer实战:从零开始预测STAT1-STAT2蛋白复合物结构

本文详细介绍了使用AlphaFold-multimer从零开始预测STAT1-STAT2蛋白复合物结构的完整实战流程。内容涵盖环境配置、数据库准备、序列处理、参数优化及结果可信度评估,为研究者利用这一AI工具进行复合物结构预测提供了系统指南和深度解析。

weixin_29094301的博客 886

人工智能和机器人网站、图像处理网络资源

人工智能和机器人网站、图像处理网络资源 (2007-08-24 12:07:30) 标签: 校园生活 分类: 工作篇 ITHao123.COM,邮箱:ithao123@163.com   第一部分:人工智能网站 科大人工智能实验室 网址:http://ailab.ai.ustc.edu.cn/ 图象识别与人工智能研究所 网

junecau的专栏 4878

RPCA模型及GoDec算法

一、基础知识 在线性代数中,秩的物理意义是矩阵中最大的不相关的向量个数,因此秩可以用来度量相关性;而在图像处理中,秩就可以理解为图像中所包含的信息的丰富程度。图片中比较突兀的成分,会增加图像矩阵的秩,一幅清晰的自然图像其数据矩阵往往是低秩或者近似低秩的,这是因为其中的图像信息有很大的相关性,但如果图像中引入噪声,那么存在随机幅值任意大但是分布稀疏的误差破坏了原有数据的低秩性。 低秩矩阵:如果AAA是一个m×nm×nm×n的矩阵,rank(A)rank(A)rank(A)是矩阵AAA的秩,如果rank(A)

小席的学习日志 7687

Verilog除法器(32位无符号+带符号)

32位无符号除法器设计 恢复余数法: 恢复余数除法的基本思路是从“部分余数”中减去除数,如果结果为负(不够减),则恢复原来的部分余数,商0. 寄存器使用: reg_r 存放被除数a reg_b 存放除数b reg_r 存放余数(初始清零) 具体做法: 做减法时,减数是reg_b中的除数,被减数是reg_r中的余数左移一位,最低位由reg_q(被除数)的最高位补充。为了能够判断相减结果的正...

qq_38600065的博客 1万+

1.认识网络爬虫

1.认识网络爬虫 网络爬虫 爬虫的合法性 HTTP协议 请求与响应(重点) 网络爬虫 爬虫的全名叫网络爬虫,简称爬虫。他还有其他的名字,比如网络机器人,网络蜘蛛等等。爬虫就好像一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。 你可以这样理解,每个爬虫都是你的分身。就像孙悟空拔了一撮汗毛,吹出一堆猴子一样。 你每天使用的百度,其实就是利用了这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信

weixin_50804299的博客 5万+

Microsoft Forms功能深度解析:企业数据收集与协作的智能利器

Microsoft Forms是微软365生态中的在线表单工具,支持问卷调查、测验和投票创建,具备拖拽式界面、多题型设计和实时数据分析功能。其核心价值在于易用性、跨平台兼容性以及与Teams、SharePoint等微软服务的深度集成,满足GDPR/HIPAA等合规要求。提供表单创建、权限管理、自动化流程(通过Power Automate)和审计日志等功能,适用于金融、医疗、教育等多行业场景。虽然存在逻辑分支有限等约束,但通过案例证明能显著提升数据收集效率(达70-85%)。使用时需注意许可证配置(Busin

xueyunshengling的博客 9125

网络爬虫是什么?怎么学python爬虫

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。

Itmastergo的博客 3万+

MIPI CPHY学习笔记01:TX物理层一致性测试项解析(LP信令模式)

在手机、平板、智能手表等移动设备中,MIPI C-PHY是负责图像、数据传输的核心接口,它就像设备内部的“高速数据线”,而低功耗(LP)信令模式,是这条“数据线”的“省电模式”,专门用于设备待机、低负载等场景,既要保证信号稳定,又要最大限度降低功耗。物理层一致性测试,就是给这个“省电模式”做的“全面体检”,确保不同厂商的设备能兼容互通。今天,我们就聚焦MIPI C-PHY TX(发射端)的Group 1 LP信令测试,用通俗的语言拆解8个核心测试项,看懂“省电信号”的合格标准。

一只豌豆象的博客 300

Android 自动亮度

/则需要从BrightnessConfigure类中读取两个数组源:config_autoBrightnessLevels和config_autoBrightnessDisplayValuesNits。) 或知道其在DisplayPowerController()构造的时候初始化的。曲线设置好了,就应该扔代码里跑起来,模型建起来了,这个过程是咋样的呢?//它将负责曲线的创建,自动背光值的计算等。通过搜索配置关键词(

Android 1485

一、网络爬虫入门

文章目录一、都有哪些爬虫?二、网络爬虫是否合法?1.引入库2.读入数据三 、网络爬虫的约束。四、python网络爬虫的流程。总结 一、都有哪些爬虫? 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型: 通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。 实际的网络爬虫系统通常是几种爬虫技术相结合实现的。 搜索引擎(Search Engine),例如传统的通用搜索引擎baidu、Yahoo和Google等,是一种大型复杂的网络爬虫,属于通用性网络爬虫的范畴。但是通用性搜索引擎存在着一定的局限性

weixin_51852924的博客 7570

《网络安全自学教程》- Nmap使用及扫描原理分析

使用Nmap进行端口扫描、主机发现、服务识别、操作系统识别、指定脚本、结果导出文件,使用wireshark抓包分析扫描原理。

wangyuxiang946的博客 1万+

什么是网络爬虫?认识网络爬虫

网络爬虫 ( Web Crawler) 又称网络蜘蛛、网络机器人它是一种按照一定规则,自动浏览万维网的程序或脚本。通俗地讲,网络爬虫就是一个模拟真人浏览万维网行为的程序这个程序可以代替真人自动请求万维网,并接收从万维网返回的数据。与真人浏览万维网相比,网络爬虫能够浏览的信息量更大,效率也更高。其主要功能是按照一定的规则,自动地抓取互联网上的信息,并将这些信息存储在本地或者数据库中,以供后续的数据处理和分析。网络爬虫通常被用于搜索引擎、数据挖掘、信息监控等领域。

qq_74350135的博客 7649

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

学习笔记之——网络爬虫的Robots协议

学习笔记之——网络爬虫的Robots协议一、 网络爬虫的尺寸二、爬虫的风险三、网络爬虫限制四、Robots协议1. Robots协议2. Robots协议的遵守方式五、参考资料 一、 网络爬虫的尺寸 小规模、数据量小,爬取速度不敏感,Requests库,&gt;90%——爬去网页,玩转网页。 中规模,数据规模较大,爬取速度敏感,Scrapy库——爬取网站,爬取系列网站。 大规模,搜索引擎,爬取速...

Jock2018的博客 1561

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

网络爬虫之Robots协议

网络爬虫之Robots协议1、Robots协议基本语法2、Robots协议的使用及理解   Robots协议是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,该协议仅约定俗成,道德约束,无法律效益和实质性的安全意义,放在网页的根目录下。   存在该协议的原因请看下图所示: 1、Robots协议基本语法 # 注释, *代表所有, /代表根目录 User-agent: * Disallow: / 其中:

sk_berry的博客 1908

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

网络爬虫:爬虫的Robots协议

本文为北理嵩天老师《网络爬虫与信息提取》学习笔记。 一、网络爬虫可按规分为三类: 小规模 中规模 大规模 爬取网页、玩转网页(占比>90%) 爬取网站,或爬取系列网站 爬取全网 数据量小 数据规模较大 搜索引擎的规模 爬取速度不敏感 爬取速度敏感 爬取速度很关键 Requests库 Scrapy库 定制开发,不可能由第三方库来操作 建议遵守爬虫协议 必须遵守爬...

MilkLeong的博客 1110

网络爬虫的Robots协议

目前对网络爬虫的限制主要有两种方式: 1.来源审查:判断User-Agent(在请求头中的一个键值对)进行限制,通过该键值对可以判断发起网络请求的浏览器类型,网站维护人员可以根据这个进行请求限制. 2.发布公告:Robots协议 下面我们就主要讲一下Robots协议. Robots协议的作用:网站告诉爬虫哪些网页可以爬取,哪些不行. Robots协议的形式:在网站根目录下的robots....

马马也的个人博客 1930

一文带你掌握Python网络爬虫

Python 网络爬虫作为数据获取的有力工具,在当今数字化时代发挥着重要作用。通过本文,我们深入了解了爬虫的基本概念、工作流程、常用库以及实战应用。从简单的网页请求与解析,到复杂的反爬虫策略应对,每一个环节都蕴含着丰富的技术知识和实践技巧。在实际应用中,爬虫已经广泛渗透到各个领域,如市场调研、数据分析、舆情监测等。它帮助企业和研究人员快速获取大量有价值的数据,为决策提供了有力支持。但我们也不能忽视爬虫使用过程中的法律和道德问题,遵守 Robots 协议、保护数据隐私和合法使用数据是我们必须坚守的原则。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4653

网络爬虫库与robots.txt规则

便于网站管理员识别。

2203_75492008的博客 898

Pytohn网络爬虫

网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。通俗来讲,网络爬虫就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

2301_79319488的博客 2617
上一篇: 在DirectX中
formated
博客等级 码龄25年 4粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值