2016-04-25 10 views

Antwort

1

Nachdem bei der Screenshot in den Kommentaren suchen:

allererst Sie die Antwort lesen, dann können Sie nicht direkt werfen, was man bekommt zu str:

e = e.read() 

Zweitens scheint es, dass einige der Inhalte mit Hilfe von Javascript daher Ihre hTML diese Tags enthält nicht besiedelt wird.

dh Es sind keine Elemente vorhanden mit Klasse rating-count:

>>> s.find('span', class_='rating-count') 
[] 

Es bedeutet nicht, dass hyphenated Suche nach dem Klassennamen nicht weil die Arbeit, wenn Sie display-price versuchen würde es funktionieren:

>>> s.find('span', class_='display-price') 
<span class="display-price">Free</span> 

was bedeutet, dass diejenigen, die Sie versuchen zu bekommen, nicht im HTML verfügbar sind, wie ich zuvor in den Kommentaren sagte.

+0

Was wäre der Unterschied? – Selcuk

+0

Ich habe erfolgreich das gleiche wie Sie, aber es funktioniert jetzt nicht :( – user2661319

1

Das Problem ist nicht mit BS4 oder Bindestrichen ist, ist das Problem, dass ohne User-Agenten Sie andere Quelle zurück erhalten, Anfragen unter Verwendung von unten wir bekommen, was Sie wollen:

In [26]: import requests 

In [27]: from bs4 import BeautifulSoup 

In [28]: r = requests.get("https://play.google.com/store/apps/details?id=com.zing.zalo", 
         headers={"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36"}) 

In [29]: soup = BeautifulSoup(r.content) 

In [30]: print(soup.select("span.rating-count")) 
[<span aria-label="573,575 ratings" class="rating-count">573,575</span>] 

Wenn wir es laufen lassen, ohne eine user-agent:

In [31]: from bs4 import BeautifulSoup 

In [32]: r = requests.get("https://play.google.com/store/apps/details?id=com.zing.zalo") 

In [33]: soup = BeautifulSoup(r.content) 

In [34]: print(soup.select("span.rating-count")) 
[] 

Wenn Sie die Quelle von jeder Anfrage gedruckt haben, werden Sie sehen, dass sie sehr unterschiedlich sind.

0

Danke AKS und Padraic Cunningham. Ich habe es getan :)

Ich überprüft und gefunden: Vor der Verwendung von "User Agent" enthalten Datenantwort nicht "Rating-Count".

(1) Recht: Vor (2) Links: Nach

enter image description here