Scrapy: Extrahieren Sie links und text
Ich bin neu scrapy und ich bin versucht zu kratzen, die Ikea website Webseite. Der basic-Seite mit der Liste der Standorte als gegeben hier.
Meine items.py Datei wird unten gegeben:
import scrapy
class IkeaItem(scrapy.Item):
name = scrapy.Field()
link = scrapy.Field()
Und die spider wird unten gegeben:
import scrapy
from ikea.items import IkeaItem
class IkeaSpider(scrapy.Spider):
name = 'ikea'
allowed_domains = ['http://www.ikea.com/']
start_urls = ['http://www.ikea.com/']
def parse(self, response):
for sel in response.xpath('//tr/td/a'):
item = IkeaItem()
item['name'] = sel.xpath('a/text()').extract()
item['link'] = sel.xpath('a/@href').extract()
yield item
Läuft auf die Datei, die ich erhalte keine Ausgabe. Die json-Datei die Ausgabe ist so etwas wie:
[[{"link": [], "name": []}
Die Ausgabe, die ich Suche, ist der name von der Lage und den link. Ich bin immer nichts.
Wo mache ich falsch?
haben Sie versucht, "ikea.com" als allowed_domains ?
was für einen Unterschied wird das machen? Ich werde versuchen, so schnell wie möglich, und kein Unterschied. Keine Ausgabe.
Es Folgen die scrapy Beispiel wie in der Dokumentation (doc.scrapy.org/en/latest/topics/spiders.html)
tun Sie etwas dagegen teilen die Ausgabe von scrapy?
was für einen Unterschied wird das machen? Ich werde versuchen, so schnell wie möglich, und kein Unterschied. Keine Ausgabe.
Es Folgen die scrapy Beispiel wie in der Dokumentation (doc.scrapy.org/en/latest/topics/spiders.html)
tun Sie etwas dagegen teilen die Ausgabe von scrapy?
InformationsquelleAutor Prakhar Mohan Srivastava | 2015-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine einfache Fehler in der xpath-Ausdrücke für das Element Felder. Der loop ist bereits über die
a
tags, die Sie nicht angeben müssena
im inneren von xpath-Ausdrücken. In anderen Worten, derzeit Sie sind auf der Suche nacha
- tags innerhalb dera
- tags innerhalb dertd
innentr
. Die offensichtlich Ergebnisse in nichts nach.Ersetzen
a/text()
mittext()
unda/@href
mit@href
.(getestet - funktioniert bei mir)
aktualisiert die Antwort. Sorry, ich bin nicht wirklich gut im erklären Dinge 🙂
Danke. Ich habe es. Vielen Dank.
InformationsquelleAutor alecxe
verwenden Sie dieses....
danke drew, ich denke, diese Art Erklärung geht Sie auf.
nicht sicher, was das bedeutet. Versuchen zu helfen, Sie gewinnen Punkte, indem Sie gute Antworten.
Geht Sie bis Mann.
InformationsquelleAutor Ganesh