I am currently trying to webscrape googles playstore. More specifically I want to create a dataset, that contains ratings of the disney+ app.
Based a tutorial on webscraping (Building a dataset of Graphic Cards on “Newegg.com”) I had no troubles in extracting the necesary information from the website. I did so by finding the correct container within the html code of the site. Here is the code that works percectly fine:
import bs4 from urllib.request import urlopen as uReq from bs4 import BeautifulSoup as soup my_url = "https://www.newegg.com/p/pl?d=graphics+card&PageSize=96&page=1" uClient = uReq(my_url) page_html = uClient.read() uClient.close() page_soup = soup(page_html,"html.parser") page_soup.find_all("div",{"class":"item-container"})[1]
which gives me the desired output of html chunks to extract more specific information:
<div class="item-container"><a class="item-img" href="https://www.newegg.com/msi...
However if I try to replicate the code for disney+ on googles playstore, the function does not extract anything. Of course I also searched for the container within the html code that contains the review of a person. The Code:
my_url = "https://play.google.com/store/apps/details?id=com.disney.disneyplus&hl=de&showAllReviews=true" uClient = uReq(my_url) page_html = uClient.read() uClient.close() page_soup = soup(page_html,"html.parser") page_soup.find_all("div",{"class":"zc7KVe"})[1]
Which produces the error:
IndexError Traceback (most recent call last) <ipython-input-54-930354cdd883> in <module> 9 uClient.close() 10 page_soup = soup(page_html,"html.parser") ---> 11 page_soup.find_all("div",{"class":"zc7KVe"})[1] 12 IndexError: list index out of range
I understand the error message, however I am puzzled on how to extract the review information the same way as in the example with graphic cards.
Any help is highly appreciated.
Best regards Neil
Advertisement
Answer
One simple option is HtmlSession
from requests_html import HTMLSession from bs4 import BeautifulSoup as bs # importing BeautifulSoup url = "https://play.google.com/store/apps/details?id=com.disney.disneyplus&hl=de&showAllReviews=true" # init an HTML Session session = HTMLSession() # get the html content response = session.get(url) # execute Java-script response.html.render(sleep=5) # create bs object to parse HTML soup = bs(response.html.html, "html.parser") names = soup.find_all("div",{"class":"zc7KVe"}) for i in range(5): print(names[i].text)
Output:-
Zapomni28. November 20201Nicht hilfreichSpamLink zu dieser Rezension Das Layout der App ist nicht sehr schön oder innovativ. Es gibt wenig Einstellungen. Am kritischsten ist aber dass es kein Miniplayer gibt. Wirklich schlecht. Prime hat das z.b.. Das Angebot von NatGeo ist ziemlich klein. Hätte mich auf mehr gute Dokus gefreut. Aber wirklich cool ist, dass man den k…Vollständige RezensionDas Layout der App ist nicht sehr schön oder innovativ. Es gibt wenig Einstellungen. Am kritischsten ist aber dass es kein Miniplayer gibt. Wirklich schlecht. Prime hat das z.b.. Das Angebot von NatGeo ist ziemlich klein. Hätte mich auf mehr gute Dokus gefreut. Aber wirklich cool ist, dass man den kompletten Speicherplatz der SD/Speicher Karte nutzen kann und es hier kein Limit gibt. Man sieht auch wieviel noch verfügbar ist. Insgesamt wie immer bei den dicken Konzernen viel Luft nach oben. Zapomni28. November 20201Nicht hilfreichSpamLink zu dieser Rezension Aleolina X27. November 20206Bearbeitungsverlauf ansehenNicht hilfreichSpamLink zu dieser Rezension Die App ist super aber irgendwie kann ich in der app seit kurzem die Lautstärke nicht mehr regulieren. Ich muss die App jedes mal vorher schließen dann die Lautstärke einstellen und dann wieder öffnen. Außerdem lassen sich bei mir die Untertitel auch nicht langfristig ausschalten. Bei jedem neuen Fi…Vollständige RezensionDie App ist super aber irgendwie kann ich in der app seit kurzem die Lautstärke nicht mehr regulieren. Ich muss die App jedes mal vorher schließen dann die Lautstärke einstellen und dann wieder öffnen. Außerdem lassen sich bei mir die Untertitel auch nicht langfristig ausschalten. Bei jedem neuen Film oder einer neuen Folge sind die Untertitel wieder da. Das macht das ganze irgendwie nervig. Hoffe das wird bald behoben. Aleolina X27. November 20206Bearbeitungsverlauf ansehenNicht hilfreichSpamLink zu dieser Rezension Stefan18. November 202021Nicht hilfreichSpamLink zu dieser Rezension Ein tolles Angebot zum vernünftigen Preis, große Auswahl, top Qualität. Einziger Kritikpunkt ist, dass die Downloads sich ständig von selbst löschen und man sie erneut runter laden muss wenn man die App verlassen hat und später wieder rein geht. Ich habe mir eine komplette Serie zu Hause über WLAN i…Vollständige RezensionEin tolles Angebot zum vernünftigen Preis, große Auswahl, top Qualität. Einziger Kritikpunkt ist, dass die Downloads sich ständig von selbst löschen und man sie erneut runter laden muss wenn man die App verlassen hat und später wieder rein geht. Ich habe mir eine komplette Serie zu Hause über WLAN in höchster Qualität runter geladen, die Folgen werden in Downloads angezeigt aber ich kann sie nicht abspielen sondern muss immer wieder neu runter laden. (SONY XPERIA 1)