Hier ist der HTML Ich arbeite mit:Kann nicht herausfinden, warum diese XPath-Selektor nicht funktioniert
<div class="left-info">
<div itemprop="author" itemscope="" itemtype="http://schema.org/Organization">
<meta content="/store/apps/developer?id=KONAMI" itemprop="url">
<a class="document-subtitle primary" href="/store/apps/developer?id=KONAMI">
<span itemprop="name">KONAMI</span>
</a>
<a class="document-subtitle category" href="/store/apps/category/GAME_SPORTS">
<span itemprop="genre">Sports</span>
</a>
</div>
</div>
Ich habe eine Reihe von verschiedenen XPath-Selektoren versucht, aber aus irgendeinem Grund, ich kann‘ t nimm die Werte und KONAMI
. Zum Beispiel:
//div[@itemprop="author"]//span[contains(@itemprop,"genre")]//text()
//div[@itemprop="author"]//span[contains(@itemprop,"name")]//text()
Das gibt mir KONAMI
aber ein leeres Array statt Sports
. Ich kann es nicht herausfinden.
Ich verwende Scrapy, um den Google Play Store zu scrappen. Die URL für das obige Beispiel lautet https://play.google.com/store/apps/details?id=jp.konami.pesam
. Hier ist die parse
Funktion:
def parse(self, response):
yield {
'utc': datetime.datetime.utcnow(),
'store': 'itunes',
'category': response.selector.xpath('//div[@itemprop="author"]//span[contains(@itemprop,"genre")]//text()').extract(),
'seller': response.selector.xpath('//div[@itemprop="author"]//span[contains(@itemprop,"name")]//text()').extract(),
'text': response.selector.xpath('//p[@itemprop="description"]/text()').extract()
}
Ah, ich verstehe. Knifflig! Vielen Dank. –
@EvanZamir yeah, beachten Sie die '.selector' ist nicht notwendig -' response' macht die Methoden des inneren Wählers .. – alecxe
Ah, noch besser. Danke noch einmal. –