集搜客GooSeeker网络爬虫

标题: 爬取微博爬不全怎么回事 [打印本页]

作者: candyluo5    时间: 2018-9-18 17:33
标题: 爬取微博爬不全怎么回事
我自己建了一个规则爬取微博关键字内容,一页20条po文我只能爬出15页左右,而且评论点赞数爬出来一样的,主题名为Shuli_spider_luo_1
求指点


作者: Fuller    时间: 2018-9-18 20:20
[attach]10071[/attach]
点击测试按钮,切换到数据规则那个tab,箭头指向的那段xpath就是定位每个样例的,把这段xpath拷贝出来,进行搜索,能看到搜到14个微博。我对了一下,确实有少的,那么就要逐步排除这个xpath中哪个判断条件有问题。

先把xpath拷贝出来是:
  1. //*[@class='feed_lists W_texta']/div[position()>=1 and count(.//*[@class='W_texta W_fb'])>0 and count(.//*[@class='comment_txt'])>0 and count(.//*[@class='W_textb'])>0 and count(.//*[@class='feed_from W_textb']/a[position()=2])>0 and count(.//*[@class='line S_line1']/em/text())>0 and count(.//*[@class='line S_line1']/em/text())>0]
复制代码
如果把这个xpath中的判断条件删除大部分,只保留一个,就是这样
  1. //*[@class='feed_lists W_texta']/div[position()>=1]
复制代码
再拷贝过去搜,发现能搜到20个微博,那么逐步增加其他判断条件,看看到哪个条件的时候数字少了,比如,接下来搜
  1. //*[@class='feed_lists W_texta']/div[position()>=1 and count(.//*[@class='W_texta W_fb'])>0]
复制代码
还是20个微博,再增加一个条件
  1. //*[@class='feed_lists W_texta']/div[position()>=1 and count(.//*[@class='W_texta W_fb'])>0 and count(.//*[@class='comment_txt'])>0]
复制代码
还是20个微博,再增加一个条件
  1. //*[@class='feed_lists W_texta']/div[position()>=1 and count(.//*[@class='W_texta W_fb'])>0 and count(.//*[@class='comment_txt'])>0 and count(.//*[@class='W_textb'])>0]
复制代码
还是,再增加
  1. //*[@class='feed_lists W_texta']/div[position()>=1 and count(.//*[@class='W_texta W_fb'])>0 and count(.//*[@class='comment_txt'])>0 and count(.//*[@class='W_textb'])>0 and count(.//*[@class='feed_from W_textb']/a[position()=2])>0]
复制代码

只剩下18个微博了,所以,新加的这个条件不通用。这些条件都是勾上了关键内容的抓取内容生成

[attach]10072[/attach]

在数据规则中,可以看到这个条件是 From这个抓取内容生成的,再通过搜索按钮,发现如上图那个内容被跳过了,仔细观察,他没有发布设备,说明这个抓取内容不能勾选关键内容












作者: candyluo5    时间: 2018-9-18 21:22
十分感谢,还有三个问题麻烦您赐教,
1. 那我想请问我去掉勾选关键内容代表允许里面值为空么?
2.另外还有一个问题是我评论和赞的DOM class节点一样的所以导致爬出来数据一模一样请问有办法解决吗?
3. 我想爬取全文,那我需要再建一个规则,然后如何建立展开全文这个规则跟我现在这个规则联动起来呢?

作者: candyluo5    时间: 2018-9-18 21:28
Fuller 发表于 2018-9-18 20:20
点击测试按钮,切换到数据规则那个tab,箭头指向的那段xpath就是定位每个样例的,把这段xpath拷贝出来,进 ...

十分感谢,还有三个问题麻烦您赐教,
1. 那我想请问我去掉勾选关键内容代表允许里面值为空么?
2.另外还有一个问题是我评论和赞的DOM class节点一样的所以导致爬出来数据一模一样请问有办法解决吗?
3. 我想爬取全文,那我需要再建一个规则,然后如何建立展开全文这个规则跟我现在这个规则联动起来呢?

作者: Fuller    时间: 2018-9-19 12:16
candyluo5 发表于 2018-9-18 21:22
十分感谢,还有三个问题麻烦您赐教,
1. 那我想请问我去掉勾选关键内容代表允许里面值为空么?
2.另外还有 ...

1,如果不勾关键内容,那么就允许空值

2,爬出来一样的内容,我忘记告诉你了,这是因为这两个内容具有相同的class值,爬虫会自动选择他们作为定位标志。为了解决这个问题,可以手工做定位标志映射,比如,沿着DOM树,找他们的父节点或者更高的节点,如果含有class或者id,把这个定位标志都映射给这两个抓取内容,那么就会以父节点为参照,就不会受他们自己相同的class的干扰。
定位标志映射教程:https://www.gooseeker.com/doc/article-344-1.html
相同class造成的问题:https://www.gooseeker.com/doc/article-232-1.html  这个教程说了可以用绝对定位,但是绝对定位完全不采用定位标志,会影响规则的适应性,最好给整理箱的顶层容器节点做了定位标志映射以后再用,而且各个抓取内容尽量用上定位标志映射,手工做的映射是有限选用的,剩下的没有映射的就会绝对定位,这样影响会小点。

3,要找一个样本页面,上面有多个点击查看全文的样本,在上面做连续动作,用点击动作,会逐个点开。每做一次动作就会抓取一次,这样能抓取到大量重复数据。导出以后需要自行过滤。另外,这次点击点的是谁,需要进行匹配。通常需要在点击动作的高级设置中,设置内容表达式,抓取被点击位置的标志性内容。这样在处理结果文件的时候,会知道这个结果文件是点击那个位置产生的,否在,这个结果文件是一个微博列表,你不知道点击了哪一个。内容表达式抓取到的内容存在<actionvalue>中。

连续点击的教程:https://www.gooseeker.com/doc/article-288-1.html
内容表达式的介绍参看:https://www.gooseeker.com/doc/article-376-1.html

作者: miami456    时间: 2019-3-11 20:08
爬取微博,集搜客有专门的微博工具箱https://www.gooseeker.com/land/weibo.html,下载爬虫软件后,输入网址或者关键词就可以采集微博了,博主主页内容,微博评论、转发,微博关键词搜索结果等等
作者: wangyong    时间: 2021-1-13 14:40
用集搜客的微博快捷采集输入网址或关键词即可采集数据,
[attach]13546[/attach]
选中要采集的网站和板块,可以根据示例网址确认是不是自己要采集的页面

上图选中的是微博展开全文的采集入口,是来采集那种微博内容过长需要展开全文才能完整采集的微博内容,输入多条微博网址,直接启动即可采集

数据展示:
[attach]13547[/attach]





欢迎光临 集搜客GooSeeker网络爬虫 (https://www.gooseeker.com/doc/) Powered by Discuz! X3.2