Chapter 1. Introduction to Web Automation LWP ( "Library for World Wide Web in Perl"简称)是一组 Perl模块和从Web获取数据的面向对象的类。 这章简要说明了几种LWP程序来执行常见的任务,比如 抓取网页,使用正则表达式提取信息,并提交表单。 1.1 Web 作为数据源 很多的web 站点被设计, 用户界面专家,建立HTML代码是易于使用和正确的显示在所有的浏览器。用户体验专家摇手指告诉网页 设计师来研究他们的用户,让他们知道人类的弱点和猿的后代们将查看网站的欲望。 然而,从根本上说, 一个web 站点是提供数据和服务。一个股票经纪人有股票价格。 这是假设的数据和服务将有人来访问 渲染的HTML, 但是,需要程序程序员都对在网络上的数据来源和服务进行了研究, 并认为我想用那些程序. LWP 让你的网站自动化,有了它,你可以读取网页,提交表单,验证,并从HTML 提取信息。一旦你使用它来抓取新闻标题 或者检查链接,你永远不会用同样的访问访问Web. 1.1.1 屏幕抓取 一旦你解决了基本的如何请求web server 的特定的页面, 你仍旧需要找出你需要的信息, 掩埋在HTML 响应信息里。通常你不需要更多的正则表达式来实现这些。 更挑剔的LWP的鉴赏家,然而, 对待HTML 文档作为令牌流。例如, 你胡使用令牌视图和树 视图来考虑这样的任务是如果来 捕捉<img...> 标签的,缺少一些它们的属性, 如何来获得所有的头条新闻的英国广播公司新闻主要页面的绝对URL,和如何对提 取内容从一个网页链接并将其插入到不同的模板。 在80*24 终端的日子里,"屏幕抓取"指的是从交互的应用程序的屏幕提取信息。这个词已经被用来表示自动提取数据从 任何系统的输出 基于交互式的使用。 这是用于从HTML获取数据 1.1.2 脆弱性 在某些幸运的情况下,你的LWP相关的任务包括不需要你的应用来解析 来下载文件。 但是,大多数任务都需要从部分返回的文档中提取一部分数据, 使用屏幕抓取手段(前面提到的). 一个不可回避的问题是,大多数web内容的格式可以随时更改。 例如, 如果你想匹配文本章节的标题, 你可以写的程序要取决于 <h2>...</h2> tags, 但是明天站点的模板可以被重新设计,headings could then be in <h3 class='hdln'>...</h3> tags。 在这一点上,你的程序不会看到任何 认为是一个段的标题。在实践中,任何给定的站点的模板不会每天改变, 但是当你读这本书看到书提取的例子. 有些脆弱性的教训, 这本书 我显示的数据来自不同的网站(Amazon.com,的英国广播公司新闻Web站点,和许多其他) 来显示如何编写程序来提取数据,然而代码是脆落的,有些网站会重新每几年才会改变,亚马逊似乎每隔几周. 因此虽然我尽了一切努力提供准确的代码的网站,因为他们的存在在写这篇文章时,我希望你会考虑项目价值的书作为学习工具 ,即使网站将已经面目全非。 1.1.3. Web Services 程序员已经开始在网络上实现自动化交易产生的巨大价值。目前,Web服务的一个蓬勃发展的行业,这是数据或提供的服务在网 络上的流行语。有什么区别从网站的Web服务是Web服务不发出HTML为人类最终的阅读快感,他们发出XML程序。 这个消除了刮出HTML信息的需要, 灵巧的解决了 变幻无常的网站的问题导致的脆落性。