weibo-search icon indicating copy to clipboard operation
weibo-search copied to clipboard

点赞数抓取一直为零

Open zrxdaly opened this issue 3 years ago • 8 comments

设置就是初始设定, 抓取的点赞数量所有的都为零, 请问和最近的fix相关吗?

zrxdaly avatar Jan 23 '22 23:01 zrxdaly

没关,因为大部分微博点赞就是0,如果你获取的是热门微博,应该能看到点赞数。

dataabc avatar Jan 24 '22 07:01 dataabc

没关,因为大部分微博点赞就是0,如果你获取的是热门微博,应该能看到点赞数。

但是我人工搜索会发现,那个点赞数是在那儿的

zrxdaly avatar Jan 24 '22 13:01 zrxdaly

是最新的程序吗?之前有点赞问题 #109 ,后来解决了。

dataabc avatar Jan 24 '22 14:01 dataabc

是最新的程序吗?之前有点赞问题 #109 ,后来解决了。

谢谢引索到这个issue,我和ta的问题是一样的,我用的是master版本的程序,我本来也想尝试和ta一样去debug一下,发现有点难单独测试(或者直接整体测试看变量输出),请问有什么这方面的教程吗或者小提示 :)

zrxdaly avatar Jan 25 '22 13:01 zrxdaly

你可以搜索scrapy的教程。或设置只获取热门微博,看看有点赞数吗。

dataabc avatar Jan 26 '22 05:01 dataabc

你可以搜索scrapy的教程。或设置只获取热门微博,看看有点赞数吗。

谢谢! 我觉得我好像解决了这个问题。

原来用来定位"评论"和“点赞”的代码位置是:search.py

comments_count = sel.xpath('.//a[@action-type="feed_list_comment"]/text()').extract_first()
attitudes_count = sel.xpath('.//span[@class="woo-like-count"]/text()').extract_first()

评论是可以的,但是点赞不行,点赞部分修改为:

attitudes_count = sel.xpath('.//a//em/text()').extract_first()

debug的方法:

在attitudes_count 部分插入(https://docs.scrapy.org/en/latest/topics/shell.html#topics-shell-inspect-response)

from scrapy.shell import inspect_response
inspect_response(response, self)

在shell测试

In [2]: sel.xpath('.//a[@action-type="feed_list_comment"]/text()')
Out[2]: [<Selector xpath='.//a[@action-type="feed_list_comment"]/text()' data='评论 282'>]
In [4]: sel.xpath('.//a[@action-type="feed_list_like"]/text()')
Out[4]: [<Selector xpath='.//a[@action-type="feed_list_like"]/text()' data=' '>]

如果inspect weibo网站的话,是这样的: Screenshot from 2022-01-26 16-43-02 会发现点赞的属性和转发评论不一样 如果用这个

In [16]: sel.xpath('.//a//em/text()').extract_first()
Out[16]: '323'

zrxdaly avatar Jan 26 '22 15:01 zrxdaly

感谢建议。我现在没法调试,如果您确定“现在的代码能无法获取点赞数,您的代码可以”,您可以pull request的方式提交代码,这样不但可以帮助更多的人,您还可以成为本程序的contributor。因为我现在不能测试,可能要过一段时间才能merge。这只是建议,如果您不方便,不提交代码也可以,感谢您的热心反馈和建议。

dataabc avatar Jan 27 '22 04:01 dataabc

你可以搜索scrapy的教程。或设置只获取热门微博,看看有点赞数吗。

谢谢! 我觉得我好像解决了这个问题。

原来用来定位"评论"和“点赞”的代码位置是:search.py

comments_count = sel.xpath('.//a[@action-type="feed_list_comment"]/text()').extract_first()
attitudes_count = sel.xpath('.//span[@class="woo-like-count"]/text()').extract_first()

评论是可以的,但是点赞不行,点赞部分修改为:

attitudes_count = sel.xpath('.//a//em/text()').extract_first()

debug的方法:

在attitudes_count 部分插入(https://docs.scrapy.org/en/latest/topics/shell.html#topics-shell-inspect-response)

from scrapy.shell import inspect_response
inspect_response(response, self)

在shell测试

In [2]: sel.xpath('.//a[@action-type="feed_list_comment"]/text()')
Out[2]: [<Selector xpath='.//a[@action-type="feed_list_comment"]/text()' data='评论 282'>]
In [4]: sel.xpath('.//a[@action-type="feed_list_like"]/text()')
Out[4]: [<Selector xpath='.//a[@action-type="feed_list_like"]/text()' data=' '>]

如果inspect weibo网站的话,是这样的: Screenshot from 2022-01-26 16-43-02 会发现点赞的属性和转发评论不一样 如果用这个

In [16]: sel.xpath('.//a//em/text()').extract_first()
Out[16]: '323'

你好,似乎weibo又改版了,现在使用原来的代码可以抓取赞数,修改后的代码反而不行了

DeNancy avatar Aug 15 '22 02:08 DeNancy