网站内容抓取(测试阻碍交付,如何破解这一难题?(gt)(图))
优采云 发布时间: 2022-01-07 13:06网站内容抓取(测试阻碍交付,如何破解这一难题?(gt)(图))
测试阻碍了交付。如何解决这个问题呢?>>>
网站内容捕获和网页数据提取是几乎每个网站的构建者都会使用的技术。网站的网页都是HTML或XHTML文档,数据抽取/信息抽取的方式分为两类:
1.通过正则表达式提取内容。(X)HTML 文件是一个文本文件。您可以直接使用正则表达式提取指定位置的内容。“指定地点”不一定是绝对定位。例如,您可以参考 HTML 标签定位。,更准确
2、使用DOM、XML、XPath、XSLT提取内容,(X)HTML文件先转换成DOM数据结构,然后用XPath遍历这个结构提取内容或者用XSLT分片提取数据。
HTML 文件本身是一个结构化文件。文档中的文本内容被许多标签(标签、HTML 元素)包围。这些标签构成了 HTML 文档的结构。在浏览器上显示时,首先添加结构化文本文件到DOM数据结构的转换过程中,需要进行一些必要的纠错。例如,一些 HTML 文件有未关闭的标签,只有开始标签,没有结束标签。在生成 DOM 结构之前,需要更正这些错误。因此,如果单纯使用正则表达式的方式,结构化的信息并不能很好的利用起来。相反,第二种数据抽取方法充分利用了结构信息,可以采用模块化的编程方式,大大提高了编程效率,减少了程序bug,例如使用XSLT' s xsl:template 转换和提取用于编写模块字的数据格式。但是,XSL 语言也更复杂。本文只讲解了一种使用XSLT的技巧:提取HTML页面中某个片段的内容,但过滤掉一些不需要的块。说得形象点,就是把一页纸剪掉一大块,挖出一些小块。
使用 xsl:copy-of 复制一段 HTML 的片段,但是如果你想挖掘出这个片段中的一些内容,你需要一些技巧。可以使用xsl:copy,xsl:copy只提取当前节点,xsl:copy-of提取当前节点及其子节点并递归调用。使用xsl:copy,可以自定义一个类似于xsl:copy-of的递归调用过程,并且可以任意控制在递归调用过程中过滤哪些节点。
即将发布的最新版网页抓取/数据提取/信息提取软件工具包MetaSeeker将提取规则定义方法扩展为三种:
1.由软件自动生成;
2、用户可以使用XPath表达式来指定特定信息属性的定位规则;
3.用户可以定义自己的XSLT提取片段。
要实现上述要求,需要使用第三种方法定义一个xsl:template,例如下面的模板
用于从一个自由职业者项目(自由职业者投标和外包项目)网站中提取任务描述信息,只提取节点(node),例如HTML元素和文本,不提取节点属性,例如@class等.,需要过滤的节点用空模板实现,后面四个是它的功能
将上面定义的模板片段保存在网页爬虫/数据提取/信息提取软件工具包MetaSeeker中MetaStudio工具的bucket编辑工作台的输入框中,系统会自动嵌入到自动生成的信息提取指令文件中中间。