刮Google Play评论

时间:2020-04-19 10:03:37

标签: python web-scraping beautifulsoup urllib

我是编程新手,最近我尝试使用以下程序使用python抓取Google Play评论:

from bs4 import BeautifulSoup
import urllib.request

url = input("Enter URL: ")
open_url = urllib.request.urlopen(url)

soup = BeautifulSoup(open_url, "html.parser")

reviews = []
for i in soup.find_all("div", {"jscontroller" : "X"}, {"class" : "X"}):
    per_review = i.find("X")
    reviews.append(per_review)

print(reviews)  

问题在此部分:

for i in soup.find_all("div", {"jscontroller" : "X"}, {"class" : "X"}):
    per_review = i.find("X")
    reviews.append(per_review) 

我尝试了许多父节点和包含评论的当前节点,但是输出始终为空列表。有人可以演示如何实现我的预期吗?谢谢。

编辑

例如,如果我将Super Mario Run的URL使用以下参数:

reviews = []
for i in soup.find_all("div", {"jscontroller" : "LVJlx"}, {"class" : "UD7Dzf"}):
    per_review = i.find("span")
    reviews.append(per_review)

print(reviews)    

输出为空列表。

1 个答案:

答案 0 :(得分:1)

jscontrollerclass的值在不同的URL之间是不一致的。您可以尝试

soup.find_all('div', {'jscontroller': True}) 

但是,当您向下滚动页面时,这些评论不会动态添加,因此不会为您提供所有评论。

这意味着您需要使用实际的浏览器抓取页面,或者可以尝试使用开发人员工具对API调用进行反向工程。

例如

enter image description here