我自己建了一个规则爬取微博关键字内容,一页20条po文我只能爬出15页左右,而且评论点赞数爬出来一样的,主题名为Shuli_spider_luo_1
求指点

举报 使用道具
| 回复

共 6 个关于本帖的回复 最后回复于 2021-1-13 14:40

来自 7#
wangyong 版主 发表于 2021-1-13 14:40:15 | 只看该作者
用集搜客的微博快捷采集输入网址或关键词即可采集数据,

选中要采集的网站和板块,可以根据示例网址确认是不是自己要采集的页面

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

数据展示:

举报 使用道具
沙发
Fuller 管理员 发表于 2018-9-18 20:20:03 | 只看该作者

点击测试按钮,切换到数据规则那个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个微博了,所以,新加的这个条件不通用。这些条件都是勾上了关键内容的抓取内容生成



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











举报 使用道具
板凳
candyluo5 中级会员 发表于 2018-9-18 21:22:24 | 只看该作者
十分感谢,还有三个问题麻烦您赐教,
1. 那我想请问我去掉勾选关键内容代表允许里面值为空么?
2.另外还有一个问题是我评论和赞的DOM class节点一样的所以导致爬出来数据一模一样请问有办法解决吗?
3. 我想爬取全文,那我需要再建一个规则,然后如何建立展开全文这个规则跟我现在这个规则联动起来呢?
举报 使用道具
地板
candyluo5 中级会员 发表于 2018-9-18 21:28:58 | 只看该作者
Fuller 发表于 2018-9-18 20:20
点击测试按钮,切换到数据规则那个tab,箭头指向的那段xpath就是定位每个样例的,把这段xpath拷贝出来,进 ...

十分感谢,还有三个问题麻烦您赐教,
1. 那我想请问我去掉勾选关键内容代表允许里面值为空么?
2.另外还有一个问题是我评论和赞的DOM class节点一样的所以导致爬出来数据一模一样请问有办法解决吗?
3. 我想爬取全文,那我需要再建一个规则,然后如何建立展开全文这个规则跟我现在这个规则联动起来呢?
举报 使用道具
5#
Fuller 管理员 发表于 2018-9-19 12:16:01 | 只看该作者
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
举报 使用道具
6#
miami456 初级会员 发表于 2019-3-11 20:08:32 | 只看该作者
爬取微博,集搜客有专门的微博工具箱https://www.gooseeker.com/land/weibo.html,下载爬虫软件后,输入网址或者关键词就可以采集微博了,博主主页内容,微博评论、转发,微博关键词搜索结果等等
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-4-27 11:25