一级:hao_guba_yiji 二级:hao_guba_er
我的目标是要抓取到帖子的发帖时间,由于一级页面没有年份数据,因此我想通过二级来抓取。 我在第一级抓取、并对第二级定义了抓取规则后,进行了第二级的抓取,但是结果只抓到了第二级样本页面的数据。请问要怎么设置,才能将第一级中建立的所有链接对应的第二级所有数据抓下来?谢谢!
第一级信息结构定义得基本正确,为了提高适应性,我又做了一些调整,请参考: test_hao_guba_yiji 1)股吧网页上,所有评论信息都一条条放在一个表中,该表分成6列,每一列都有专门的@class='lx',那么为每个信息属性都做FreeFormat映射,可以提高抓取精度 2)poster这个信息属性应该清除数据映射,只用FreeFormat映射,将@class='l4',映射给它,会自动设置block特性,抓取该列的所有文字,因为有些股评人是匿名的,有些是注册用户,注册用户有网址,所以,针对这个信息属性的网页结构不一样。
其它操作都很正确,翻页用相对线索,就不用管“下10页”这种翻页规律。
第二个主题,应该至少为一个信息属性设置key特性,否则只能用DataScraper的“普通模式”进行抓取。
抓取第一个主题的时候,会为第二个主题产生很多线索,如果手工启动抓取,则输入要抓取的线索数就能抓多个网页
已经按照Fuller的方法进行了修改,谢谢! 那个关于block的设置真心好用,又解决了我另一个问题。开心O(∩_∩)O~~
不过有两个后续问题咨询一下哈: 1,关于block的设置,那三个过滤器以及下设的一些选项,有具体的内容介绍吗?能否把链接发一下。(我自己设置的是Xpath过滤器,节点为文本内容,从二级的抓取结果来看貌似这个是可以的) 2,我在二级抓取的时候,先用10个线索尝试抓取了一下,然后第二次正式抓的时候,发现前10个线索已经不能用了,激活也没效果。这个要怎么办?是否需要一级重新抓一次?
1,Xpath和XSLT过滤器都是允许用户自定义XPath表达式或XSLT指令。可以在gooseeker网站上搜索“自定义XPath”和“自定义XSLT”。
原理是这样的: 点击MAP按钮后,看到网页内容抓取规则,如果发现某个信息属性的抓取规则(XPath表达式)不合适,那么就自己写一个,代替掉自动生成的那个。
如果发现某级容器节点下的所有信息属性都不适合,那么写一段XSLT指令将这一块全部替换掉,以前主要用户过滤掉HTML网页中的广告内容。现在很少用了,因为XSLT指令手工写起来很麻烦,而且需要准确嵌入到自动生成的完整的抓取规则中,有点难调试。目前,给企业版用户提供了完全手工修改抓取指令的功能,就不用考虑能否准确嵌入的问题。
2,如果抓取成功了,就无法通过界面进行激活,如果没有成功抓取,DataScraper的主题浏览区域上点击鼠标右键,选择菜单“线索”-〉“激活”,就可以激活以前没有成功抓取的。
成功抓取的可以用crontab.xml中的指令激活,或者在执行一次上级抓取
关于过滤器我会后续学习哒! 谢谢Fuller~~~
股吧网站抓取技巧
第一级信息结构定义得基本正确,为了提高适应性,我又做了一些调整,请参考: test_hao_guba_yiji
1)股吧网页上,所有评论信息都一条条放在一个表中,该表分成6列,每一列都有专门的@class='lx',那么为每个信息属性都做FreeFormat映射,可以提高抓取精度
2)poster这个信息属性应该清除数据映射,只用FreeFormat映射,将@class='l4',映射给它,会自动设置block特性,抓取该列的所有文字,因为有些股评人是匿名的,有些是注册用户,注册用户有网址,所以,针对这个信息属性的网页结构不一样。
其它操作都很正确,翻页用相对线索,就不用管“下10页”这种翻页规律。
第二个主题,应该至少为一个信息属性设置key特性,否则只能用DataScraper的“普通模式”进行抓取。
抓取第一个主题的时候,会为第二个主题产生很多线索,如果手工启动抓取,则输入要抓取的线索数就能抓多个网页
两个后续问题
已经按照Fuller的方法进行了修改,谢谢!
那个关于block的设置真心好用,又解决了我另一个问题。开心O(∩_∩)O~~
不过有两个后续问题咨询一下哈:
1,关于block的设置,那三个过滤器以及下设的一些选项,有具体的内容介绍吗?能否把链接发一下。(我自己设置的是Xpath过滤器,节点为文本内容,从二级的抓取结果来看貌似这个是可以的)
2,我在二级抓取的时候,先用10个线索尝试抓取了一下,然后第二次正式抓的时候,发现前10个线索已经不能用了,激活也没效果。这个要怎么办?是否需要一级重新抓一次?
激活线索的方法
1,Xpath和XSLT过滤器都是允许用户自定义XPath表达式或XSLT指令。可以在gooseeker网站上搜索“自定义XPath”和“自定义XSLT”。
原理是这样的:
点击MAP按钮后,看到网页内容抓取规则,如果发现某个信息属性的抓取规则(XPath表达式)不合适,那么就自己写一个,代替掉自动生成的那个。
如果发现某级容器节点下的所有信息属性都不适合,那么写一段XSLT指令将这一块全部替换掉,以前主要用户过滤掉HTML网页中的广告内容。现在很少用了,因为XSLT指令手工写起来很麻烦,而且需要准确嵌入到自动生成的完整的抓取规则中,有点难调试。目前,给企业版用户提供了完全手工修改抓取指令的功能,就不用考虑能否准确嵌入的问题。
2,如果抓取成功了,就无法通过界面进行激活,如果没有成功抓取,DataScraper的主题浏览区域上点击鼠标右键,选择菜单“线索”-〉“激活”,就可以激活以前没有成功抓取的。
成功抓取的可以用crontab.xml中的指令激活,或者在执行一次上级抓取
过滤器有点深奥
关于过滤器我会后续学习哒! 谢谢Fuller~~~