集搜客GooSeeker网络爬虫

标题: 评论以及对评论回复的内容的抓取问题 [打印本页]

作者: LQX930107    时间: 2016-5-8 11:35
标题: 评论以及对评论回复的内容的抓取问题
http://www.dreamore.com/projects/reply/17259.html#reply像这种网页结构的,想要抓评论内容,以及对该评论的回复的内容,要怎么实现啊?
作者: Fuller    时间: 2016-5-8 12:02
要建立多层嵌套整理箱:http://www.gooseeker.com/doc/article-151-1.html

难点在于选择一个合适的样例,好在上面做抓取规则,这个样例应该包含内部的评论内容,而且应该是包含多条评论的。为了做样例复制映射,这个样例应该位于第一个的位置上。

所以,找到这样的样例是个很大难点。为了方便做规则,可以用自己的账号,专门发布一条这样的内容,因为是自己发布的,不再发布别的,可以确保这样的内容总是在第一条的位置上。
作者: LQX930107    时间: 2016-5-8 20:56
Fuller 发表于 2016-5-8 12:02
要建立多层嵌套整理箱:http://www.gooseeker.com/doc/article-151-1.html

难点在于选择一个合适的样例, ...

如果样例不符合您说的要求,做出来的规则就难以适用于多个网页?咱们的爬虫就实现不了大量网页的抓取了是吧??
作者: Fuller    时间: 2016-5-8 22:50
LQX930107 发表于 2016-5-8 20:56
如果样例不符合您说的要求,做出来的规则就难以适用于多个网页?咱们的爬虫就实现不了大量网页的抓取了是 ...

比如微博,假设抓取实时消息流,不断有人发新的消息,好容易找到一个含有转发的微博位于消息流的第一个位置,很快就会有没有转发内容的微博把他压下去了。这个是比较麻烦的情形。

一般是这样做:找一个不热的关键词,这样消息流就不会不断下沉,然后自己发一个消息,构造成符合条件的结构,因为不热,这个消息会比较长时间处于第一位置。所以,无论是新做规则还是以后修改规则,会有足够的稳定时间

另外一个做法,是一个能应对任何情形的做法:自定义xpath。在抓取内容的高级设置里面,允许分开定义“定位xpath”和“抓内容xpath”,定位的xpath就是为了今后加载和编辑规则用的,这个xpath指向一个不变的html节点,而抓取内容xpath就可以自己编,无论你选的样例是否含有这样的内容,你都可以编一个抓内容xpath。到执行的时候,如果没有找到内容,就存空内容

所以,你提的情形是可以解决的
作者: LQX930107    时间: 2016-5-9 10:28
Fuller 发表于 2016-5-8 22:50
比如微博,假设抓取实时消息流,不断有人发新的消息,好容易找到一个含有转发的微博位于消息流的第一个位 ...

好的,知道了,谢谢。
作者: bennana    时间: 2016-12-25 16:14
Fuller 发表于 2016-5-8 12:02
要建立多层嵌套整理箱:http://www.gooseeker.com/doc/article-151-1.html

难点在于选择一个合适的样例, ...

像微博改版后这种共n条评论,需要点开后才能显示出来所有回复的网页,该如何抓取数据?


作者: Fuller    时间: 2016-12-25 20:32
bennana 发表于 2016-12-25 16:14
像微博改版后这种共n条评论,需要点开后才能显示出来所有回复的网页,该如何抓取数据?

...

可以做连续动作,逐个点开

作者: bennana    时间: 2017-1-2 21:01
Fuller 发表于 2016-12-25 20:32
可以做连续动作,逐个点开

多谢!按照高级教程淘宝和京东的做法尝试了一下,还是点不开,只能抓取显示出来的前两条。Xpath(//*[@class='list_li_v2'])查找到的条数没有问题,不知道为什么。
如果想抓取全部评论是否应该按照下面的步骤进行?
1.连续动作,点开更多回复(找到对应Xpath,设一次连续动作)
2.抓取嵌套评论,先在回复中设置样例复制,再在整条评论的div节点设置样例复制



作者: Fuller    时间: 2017-1-3 09:06
bennana 发表于 2017-1-2 21:01
多谢!按照高级教程淘宝和京东的做法尝试了一下,还是点不开,只能抓取显示出来的前两条。Xpath(//*[@cl ...

你做的规则的主题名是什么?我可以从后台帮你看看问题在哪

作者: bennana    时间: 2017-1-3 12:09
Fuller 发表于 2017-1-3 09:06
你做的规则的主题名是什么?我可以从后台帮你看看问题在哪

微博评论连续动作0103-1
微博评论连续动作0103-2

多谢指教!抓取规则中的回复内容对应点也总有问题,每次都会抓到回复数,麻烦大神也帮忙看一下。


作者: Fuller    时间: 2017-1-3 16:04
bennana 发表于 2017-1-3 12:09
微博评论连续动作0103-1
微博评论连续动作0103-2

第二级规则映射的不对,没有给回复内容做映射,应该做一个嵌套的整理箱,外层抓取普通的回复,内层也做样例复制,抓取回复的回复。

另外,第一级加载不成功,“回复数”是要抓取什么?

作者: bennana    时间: 2017-1-3 17:52
Fuller 发表于 2017-1-3 16:04
第二级规则映射的不对,没有给回复内容做映射,应该做一个嵌套的整理箱,外层抓取普通的回复,内层也做样 ...

第一级规则是想做连续动作,点击“更多回复”。
第二级规则在修改后保存弹出“Error: unsupported node type:8”,并提示建立规则前冻结页面,无法保存,但是建立前已经勾选冻结页面是什么原因?

作者: Fuller    时间: 2017-1-3 18:07
bennana 发表于 2017-1-3 17:52
第一级规则是想做连续动作,点击“更多回复”。
第二级规则在修改后保存弹出“Error: unsupported node t ...

有可能会遇到网页上没有“更多回复”的情形,这样的话,点击就会失效,那么就没有机会执行第二级。所以,在第一级也要做整理箱,抓取回复内容。

可能是在定义规则过程中执行了刷新网页结构,造成节点定位错乱了。遇到这种情况只能重新做规则,保存不了也恢复不了,如果已经保存过规则,可以加载规则,分析页面

作者: bennana    时间: 2017-1-4 11:23
Fuller 发表于 2017-1-3 18:07
有可能会遇到网页上没有“更多回复”的情形,这样的话,点击就会失效,那么就没有机会执行第二级。所以, ...

还是没有完成点击 第一级规则想点击微博评论中的”共*条回复“来查看一条评论下的所有回复。


作者: Fuller    时间: 2017-1-4 22:56
bennana 发表于 2017-1-4 11:23
还是没有完成点击 第一级规则想点击微博评论中的”共*条回复“来查看一条评论下的所有回复。

...

点击动作有高级设置,有一项“模拟点击”,勾上和不勾上都试试

作者: bennana    时间: 2017-1-12 15:42
Fuller 发表于 2017-1-4 22:56
点击动作有高级设置,有一项“模拟点击”,勾上和不勾上都试试

评论回复的连续动作问题已解决,但是在规则1中尝试通过爬虫路线显示页面下方的更多评论不执行,如果连续动作和爬虫路线翻页都需要该怎么设定规则呢?需要分成两个规则吗?多谢解答!

作者: Fuller    时间: 2017-1-12 17:19
bennana 发表于 2017-1-12 15:42
评论回复的连续动作问题已解决,但是在规则1中尝试通过爬虫路线显示页面下方的更多评论不执行,如果连续 ...

如果连续动作和爬虫路线都定义了,先执行连续动作,再执行爬虫路线。

比如,先把这个网页上的连续点击都点击了一遍,才去翻页。

如果是做一下动作,然后要翻页抓取动作执行后的内容,那么就要做两个规则,动作前和动作后分开





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