我正在尝试从Google Play中抓取评论。Google Play在页面滚动到最后时会动态加载评论。我拦截了浏览器发送的检索评论的帖子请求,发现每个请求唯一会更改的是请求的正文。我很难理解的是请求的正文是如何生成的。
第一个请求的正文是这样的:
f.req: [[["UsvDTd","[null,null,[2,null,[40,null,\"CpUBCpIBKm0KOfc7ms0D_z7jKJielp7Fz8_Pz8_Pms3OzpuZyJvMnMXOxYmSxc3MyczPz8vIycjMysbHxszPysb__hAoITbZQaENmbWoMU2VCwWZPGwZOdccwQD8MmXEUABaCwlwT4zmNQBa2BADYMm1lu0EMiEKHwodYW5kcm9pZF9oZWxwZnVsbmVzc19xc2NvcmVfdjI\"],null,[]],[\"com.feelingtouch.zf3d\",7]]",null,"generic"]]]
这是第二个要求
f.req: [[["UsvDTd","[null,null,[2,null,[40,null,\"CpUBCpIBKm0KOfc7msyg_28-Rpielp7Fz8_Pz8_Pm56eypyZzcycm8XOxYmSxc3MyczPz8vIycjMysbHxszPysb__hB4ITbZQaENmbWoMZI5V7V-7g3BObnBkABfM2XEUABaCwli2aizD1W9ExADYMm1lu0EMiEKHwodYW5kcm9pZF9oZWxwZnVsbmVzc19xc2NvcmVfdjI\"],null,[]],[\"com.feelingtouch.zf3d\",7]]",null,"generic"]]]
我是否可以通过某种方式对请求的生成过程进行反向工程?
我试着使用 selenium ,但在向下滚动几十次后,RAM使用率上升, selenium 变得没有React。
1条答案
按热度按时间oaxa6hgo1#
改变的是分页标记。但是,还有一些其他的东西。
下面是完整的编码请求主体,其中的参数 Package 在
#{}
中(number_of_results、pagination_token和product_id)。所以每次你滚动页面时,
pagination_token
都会改变。他们用它来检索下一页的结果。你不需要对令牌本身进行反向工程。你可以在检查页面源代码时找到第一个令牌,然后,每次你请求检索结果时,
next_page_toke
都会包含在其中。所以,你只需不断替换令牌,直到到达最后一个页面,并检索所有的评论。或者,您也可以使用第三方解决方案,如SerpApi。我们为您处理代理,解析验证码,并解析所有丰富的结构化数据。
用于检索YouTube评论的示例python代码(也可在其他库中使用):
JSON输出示例:
请查看documentation以了解更多详细信息。
在playground上实时测试搜索。