快捷导航
我想采集的网页:http://www.faz.net/aktuell/polit ... rfung-13530121.html
我想采集的目标内容:新闻正文。

在要采集的新闻中,段落使用了P标签,第一段xpath为//*[@class='First atc-TextParagraph'],其他为//*[@class='atc-TextParagraph'],段落小标题使用了H3标签,xpath为//*[@class='atc-SubHeadline']。

我在采集的时候测试只能采集第一段的文本,大佬们,请问是怎么回事啊?

测试输出结果和抓取设置.PNG
测试输出结果数据规则.PNG

举报 使用道具
| 回复

共 16 个关于本帖的回复 最后回复于 7 天前

Fuller 管理员 发表于 2018-11-7 16:42:57 | 显示全部楼层
我加载了这个规则,样本页面上没有这些class,你加载的网页不一样吗?

通常抓文章的话,不要分段落抓,段落数量是不一样的,而且是不是有固定的class也不一定。通常是把整篇文章抓下来,所有段落的公共父节点用来做内容映射,那么就会把整篇抓下来。

而标题有特殊的样式,可以单独创建一个抓取内容进行抓取
举报 使用道具
dieter_zk 中级会员 发表于 2018-11-7 21:23:57 | 显示全部楼层
Fuller 发表于 2018-11-7 16:42
我加载了这个规则,样本页面上没有这些class,你加载的网页不一样吗?

通常抓文章的话,不要分段落抓,段 ...

感谢大神超速度的回复!!

是这个网页没错。我截了图,如下图所示,是有这样的class的:
测试输出结果class.PNG

为什么没有直接抓整篇文章,是因为里面含有其他的节点,如div, aside(如图)等,都是些广告文本和其他无用文本。到时候要做文本清理,非常难受。

我查证了一下,每个段落的class和小标题的class都是固定使用p和h3标签的,只有这两个标签才有用。所以现在的目标是:只抓p和h3标签,同时要按顺序。因为我之前分别做了p样例复制还有H3样例复制,内容倒是抓下来了,但是顺序没办法,抓的结果显示的是p-h3-p-h3-p-h3......这样的,和原文结构顺序不符了。

希望大神能帮助解决这个问题,同时希望集搜客越办越好!




举报 使用道具
Fuller 管理员 发表于 7 天前 | 显示全部楼层
dieter_zk 发表于 2018-11-7 21:23
感谢大神超速度的回复!!

是这个网页没错。我截了图,如下图所示,是有这样的class的:

这个需要自定义xpath,自动生成xpath是这样使用class的  .//*[@class='xxxxx'],但是可以变成这样 .//*[contains(@class, 'yyy')],用contains函数就不用包含整个class值
举报 使用道具
dieter_zk 中级会员 发表于 7 天前 | 显示全部楼层
Fuller 发表于 2018-11-8 09:16
这个需要自定义xpath,自动生成xpath是这样使用class的  .//*[@class='xxxxx'],但是可以变成这样 .//*[c ...

老师,我又重新自定义了xpath, 内容是.//*[contains(@class,'TextParagraph')],但在抓取的时候只能抓到第一条(段),实在是不知道出现什么问题了。

之前我也是自定义的xpath,内容是.//*[@class='First atc-TextParagraph']|.//*[@class='atc-TextParagraph']|.//*[@class='atc-SubHeadline'], 搜索显示有11个结果,但抓的时候同样只能抓到第一条(段)。
测试输出结果xpath.PNG

不知您可否做一个抓取规则,只抓p和h3的,需要多少费用可以告诉我。成分感谢!

举报 使用道具
Fuller 管理员 发表于 7 天前 | 显示全部楼层
dieter_zk 发表于 2018-11-8 10:47
老师,我又重新自定义了xpath, 内容是.//*[contains(@class,'TextParagraph')],但在抓取的时候只能抓到 ...

主题名是什么? 上次我加载后发现没有那些class值
举报 使用道具
dieter_zk 中级会员 发表于 7 天前 | 显示全部楼层
Fuller 发表于 2018-11-8 11:11
主题名是什么? 上次我加载后发现没有那些class值

主题名是:新闻抓取测试
举报 使用道具
Fuller 管理员 发表于 7 天前 | 显示全部楼层
dieter_zk 发表于 2018-11-8 11:28
主题名是:新闻抓取测试

这个规则需要手工编辑,但是手工编辑的会被自动生成的冲掉,所以,每次自动生成以后,都需要手工编辑。自动生成的情形是:1,点击“存规则”按钮;2,点击“测试”按钮。

为了防止被冲掉,需要严格按照顺序来做:
1,作为标注和内容映射以后,点击“存规则”,先存一遍自动生成的规则
2,点击“测试”按钮,在输出窗口选择“数据规则”tab,看到了自动生成的规则,直接修改
3,最后,点击输出窗中的“保存修改”按钮,保存这次手工修改,但是不能再点“存规则”了

这个规则要这样调整:
内容映射20181108120106.png
1,内容映射这样修改:用P节点做内容映射给“段落”,高级设置勾上“文本内容”

标志20181108120157.png
2,整理箱中的容器节点“全文”做一个定位标志映射,期望用定位标志实现抓取多样例,参看:https://www.gooseeker.com/doc/article-347-1.html

3,应该存规则了

4,点击“测试”按钮,到“数据规则”那里看,就能看到下面的截图
测试20181108120253.png
有四处出现了 *[@class='First atc-TextParagraph'] ,这是用 = 进行判断的,但是第一个段落含有‘First’,其他段落却没有,所以需要手工修改才能通用,把这部分修改成
*[contains(@class, ' atc-TextParagraph')],这样就不是相等了,只要含有一部分就行。

4处只替换这个位置,其他不要动。

5,点击旁边的“保存修改”按钮,就好了。这个按钮点击以后没有弹框提示,这是程序的缺陷,如果没有提示,就是修改成功了

举报 使用道具
dieter_zk 中级会员 发表于 7 天前 | 显示全部楼层
按照指导,采集到了全部p标签内的文本,但小标题内容位于h3,如何把h3也采集进来,并按原文顺序?
测试输出结果数据规则修改1.PNG

测试输出结果数据规则修改2.PNG

举报 使用道具
dieter_zk 中级会员 发表于 7 天前 | 显示全部楼层
手动修改完成后,不能“存规则”,不能点”测试“,这样的话规则就无法应用采集其他同类网页啊。。。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • 大型百货商场会员画像描绘
  • 自动导入导出数据
  • 批量爬取蘑菇街商品价格、评论信息
  • 微博用户数据分析
  • 批量爬取苏宁商品价格、评论信息

热门用户

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2018-11-15 00:30