Соскоб Google Play обзоры - PullRequest
       39

Соскоб Google Play обзоры

1 голос
/ 19 апреля 2020

Я новичок в программировании, и я недавно пытался очистить обзоры Google Play с помощью python, используя следующую программу:

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) 

Я пытался со многими родительскими узлами и текущими узлами, содержащими обзоры, но вывод всегда пустой список. Может ли кто-нибудь продемонстрировать, как достичь того, чего я хотел? Спасибо.

Редактировать

Например, если я использую URL для Super Mario Run со следующими параметрами:

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

print(reviews)    

Вывод - пустой список.

1 Ответ

1 голос
/ 19 апреля 2020

Значения jscontroller и class не будут одинаковыми для разных URL-адресов. Вы можете попробовать что-то вроде

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

Но это не даст вам все отзывы, поскольку они динамически добавляются при прокрутке страницы вниз.

Это означает, что вам нужно очистить страницу в реальном браузере или вы можете попытаться реконструировать вызовы API с помощью Инструментов разработчика.

например,

enter image description here

...