найти все divs jscontroller в игровом магазине Google с супом Python - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь получить все отзывы из приложения в Google PlayStore. Я не должен использовать Selenium, поэтому я думал о BeatifulSoup. Моя проблема, когда я пытаюсь найти <div jscontroller="H6eOGe" jsmodel="y8Aajc" jsdata="yf3HXc;_;$0 YjFXEf;_;$1"> ответ []

С Selenium я делаю это с: driver.find_elements_by_xpath('//div[@jscontroller="H6eOGe"]')

import requests
from bs4 import BeautifulSoup

session = requests.session()
app = 'com.mercadopago.wallet'
response = session.get('https://play.google.com/store/apps/details?id={}&hl=es_AR&showAllReviews=true'.format(app)).text
soup = BeautifulSoup(response, "html.parser")
app_name = soup.find("h1", {"class": "AHFaub"}).text
reviews = soup.find_all("div", {"jscontroller": "H6eOGe"})

1 Ответ

0 голосов
/ 20 января 2020

Ваш код выглядит нормально. Проблема с HTML, который вы получаете. Если вы сделаете:

with open('source.html','w') as f:
   f.write(response)

И затем откроете этот файл в текстовом редакторе, вы заметите, что он не содержит никакого div с атрибутом jscontroller = "H6eOGe". Я предполагаю, что эти div-ы каким-то образом создаются каким-то скриптом, когда браузер отображает страницу.

В любом случае, информация, которую вы ищете, находится в HTML, но вы должны проанализировать ее по-другому

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...