2016-06-30 4 views
1

Ich versuche, alle Bewertungen von Amazon zu verschrotten. Wenn ich meinen Code unten ausgeführt habe, wird eine leere Liste ohne Fehler zurückgegeben. Ich konnte nicht herausfinden warum. Kannst du mir bitte helfen.Ich versuche, Bewertungen von Amazon mit Python 3.x zu verwerfen, aber nichts zu bekommen

from __future__ import unicode_literals 

import requests 
from scrapy.selector import Selector 

def fetch_page(url): 
    r = requests.get(url) 
    return r.text 

def review_positive(url): 
    #html = fetch_page(url) 
    sel = Selector(text = url) 
    review = sel.css(' .a-section review').extract() 
    return review 


print (review_positive('https://www.amazon.com/Apple-iPhone-Unlocked-GB-Packaging/product-reviews/B01DAJT1AW/ref=cm_cr_arp_d_viewpnt_lft?ie=UTF8&showViewpoints=1&sortBy=helpful&filterByStar=positive&pageNumber=1')) 

Antwort

1

Sie sollten keine Leerzeichen in Ihrem CSS-Selektor zwischen Klassen haben. Verwenden Sie stattdessen ., um die Klassen zu trennen:

.css('.a-section.review').extract() 

Sobald Sie beheben, dass Ihre Wähler fein funktioniert:

In [6]: rev = response.css('.a-section.review').extract() 

In [7]: len(rev) 
Out[7]: 10 

In [8]: rev = response.css('.a-section review').extract() 

In [9]: len(rev) 
Out[9]: 0 
+0

@KemyLand, cheers. –

+0

omg es funktioniert jetzt danke! :) – Caleb90

+0

@ Caleb90, kein Problem, du bist willkommen. –

Verwandte Themen