网络爬虫采集html片段时无法生成结果文件怎么办?

2019-12-5 17:51| 发布者: Fuller| 查看: 5227| 评论: 0

摘要: 集搜客GooSeeker网络爬虫除了能把网页上的内容转换成结构化的表格以外,还能将整个html文档或者html中某个标签下的片段采集下来,放在XML格式的结果文件中。定义这样的规则相当简单。但是,在V9.0.5版本之前,有一个 ...

集搜客GooSeeker网络爬虫除了能把网页上的内容转换成结构化的表格以外,还能将整个html文档或者html中某个标签下的片段采集下来,放在XML格式的结果文件中。定义这样的规则相当简单。但是,在V9.0.5版本之前,有一个bug,当采集复杂网页html的时候,有时会生成不了结果文件。

V9.0.5版本解决了这个bug,在结果文件中,html文档片段存入一个CDATA中,会对原网页上的CDATA进行转义,防止冲突造成无法生成结果文件,所以,使用采集结果的时候,要根据需要做反转义。

下面,我们将详细讲解操作方法。

1. 定义爬虫规则,采集网页片段

如下图,假定定义了一个整理箱,里面创建了一个抓取内容,名字是html,用这个抓取内容存储采集下来的html片段。这个例子中,我们将把整个html存到抓取内容中。定义规则的步骤主要有:

第一步,做内容映射,把DOM窗口上的编号是0的节点映射给抓取内容html

第二步,做高级设置,勾选“网页片段”

至此,规则定义好了,存规则,就能抓取数据了。

2. 观察采集结果文件

采集结果文件是一个XML文件,存于DataScraperWorks文件夹,详细说明参看《查看数据结果》。下面的截图是采集结果文件的一个片段,可以看到抓取内容html是一个xml标签,下面存了完整的html文档。但是这个截图是Firefox解析出来的样子,要看源代码,应该用编辑器打开,请注意对比下面两个图,底下那个图显示源代码,可以看到html是存于一个CDATA中的。

3. 网页片段中的转义符

如果html文档中含有CDATA,那么就有开始标签和结束标签形成一对,分别是 <![CDATA[ 和 ]]> 两个标签。为了不让网页上的CDATA与结果文件中的CDATA冲突,就把网页上的CDATA标签转义了。对应关系如下:

  • <![CDATA[ 转义成 <!--[gooseeker-cdata]
  • ]]> 转义成 <![gooseeker-cdata]-->

当使用采集结果的时候,需要通过字符串替换,进行反转义。


鲜花

握手

雷人

路过

鸡蛋

最新评论

GMT+8, 2024-12-19 04:03