自动抓取网页数据(取值XML步骤解析(一)_官方网站_光明网)
优采云 发布时间: 2022-02-24 05:21自动抓取网页数据(取值XML步骤解析(一)_官方网站_光明网)
]]>
XML 规则:
1.必须定义处理器元素,至少收录一个过程元素。
2.processer元素收录了所有的process元素,process元素定义了页面代码的整个处理流程
程序。
3.process 元素包括 3 个属性,流、表和字段。流代表一个过程。也就是说,在这个过程元素之后
解析出来的内容就是下一步的内容或者回退到未解析内容的内容。值为真时,将本步处理结果作为下一步处理的物料,本步处理结果不存入数据库。当值为false时,本步骤的结果只在本步骤中使用。下一次解析回退到这一步解析前的内容。table属性定义了该步骤的处理结果要存储在哪个数据库表中,fidld属性定义了对应表中的字段。
4.每个进程都必须收录一个处理流。目前有3种处理流程,tag-filter,regex-filter,
标志过滤器。
5.tag-filter 指标签过滤,获取指定标签的内容。tag-filter 包括 4 个属性,pos、key、value、
纯文本。pos 指的是 html 标签的位置。如果未指定,则默认为第一个。key是指要获取的标签的属性,包括name、id、class等。当然其他属性如width、href、target等也是支持的,所有标准的html属性都支持。value 指的是这个属性的值。textonly 是指是否只获取该标签内的文本内容。没有标签。
6.regex-filter 指正则过滤,获取符合正则表达式的内容。注意正则表达式必须放在
在 CDATA 块内。另外,要获取的内容必须用()括起来,只会获取()内的内容。
7.flag-filter是指flag过滤,获取两个flag之间的内容。用户必须自己确保开始和结束
标志位是唯一的。这可以确保您得到您想要的。获取标志位需要用户查看源代码,获取唯一标志位。标记过滤是目前主流爬虫提供的最常用的方法。
解析过程:
1.先获取所有处理流
2. 进程按顺序执行。确定流程流程的类型流属性,根据流属性调用不同的处理
方法。为真时剪切,为假时解析保存。
3. 根据流属性进入形式分析,确定分析元素过滤器的类型,是target-filter,还是
regex-filter 或 flag-filter,根据不同的解析类型调用不同的解析过程。解析过程参考
XML 规则。
4.所有进程执行完毕后,系统会将采集到的所有字段保存到数据库中。
案子
爬取 javaeye 博客内容
此示例演示如何抓取 javaeye 上博客的 文章。博客地址/。在爬取之前,我们需要创建数据库和表,只需导入示例使用的数据库表即可。
第 1 步:目标定义
先分析页面上文章的链接的写法
HashMap 与 Hashtable 和 HashSet 的区别
IE下ZOOM属性导致的渲染问题
Web2.0网站性能调优实践
通过这些链接的共同点,我们可以很容易地找到其文章链接的规律性,并绘制出这样的正则表达式:
href\=\'(/blog/\d*)\'
注意我们要获取的只是一个类似/blog/179642的链接,而不是像href=这样的东西,所以我们在正则中匹配/blog/179642的部分加上(),系统会自动获取this() 中的内容。请注意, () 是必需的。
完整的 XML 文件编写请参考 WEB-INF/example.xml。
第 2 步:剪切
首先去掉网页的多余部分,我们把头部剪掉。具体的写法可以参考xml文件。
第 3 步:处理
在处理网页之前,我们需要详细分析网页的结构。以 /blog/179642文章 为例。
分析过程如下:
●我们想要的内容在一个id为main的div中。让我们先剪一下,
要被剪掉。我们定义了一个流程为真的流程,它将返回修剪后的内容。
● 然后我们抓取页面头部的标题作为我们保存到数据库的标题。由于复杂,我们使用
使用正则表达式获取
]]>
我们要获取的部分只是文本,不需要html标签。所以,将匹配文本内容的部分
我们把它放在()里面。请注意, ( ) 是必需的。
● 接下来,获取它的关键字作为文章 的标签,我们同样使用正则来完成。
:(.*?)
]]>
●最后得到文章的内容。这里我们使用一种更简单的方法,标志位方法。我们发送
文章 的所有正文内容现在都是
和
这两个字符串之间。而且这2个字符串是唯一的,不会重复。在这种情况下,使用
chi-bit 方法是最好和最简单的。请记住:如果您想在 2 个唯一字符内抓取内容
在字符串的中间,那么使用标志方法是最好和最简单的方法。
第 4 步:抓住
只需使用要作为参数执行的 xml 文件名执行 SystemCore,任务就会启动。可以同时观察数据库和控制台,观察爬取的进度。
相关话题