Ich bin relativ neu in der Verwendung von Scrapy oder Python. Ich suche, um das von einigen verschiedenen Verbindungen zu extrahieren, und ich habe Probleme, einen HTMLXPathSelector Ausdruck (Syntax) zu verwenden. Ich habe ausführliche Dokumentation für die richtige Syntax angeschaut, aber habe noch keine Lösung gefunden. HierScrapy - extrahieren verschachtelten 'img src' mit xPathSelector
ist ein Beispiel für eine Verbindung Ich versuche, das ‚img src‘ zu extrahieren aus:
Page I am trying to extract the img src url from
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class GeekSpider(BaseSpider):
name = "geekS"
allowed_domains = ["geek.com"]
start_urls = ["http://www.geek.com/articles/gadgets/kindle-fire-hd-8-9-on-sale-for-50-off-today-only-20121210/"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
imgurl = hxs.select("//div[@class='article']//a/img/@src").extract()
return imgurl
Ich glaube, ich habe die Syntax für die x.select heraus Aussage, aber, da ich neu zu dieser Syntax/Methode bin ich mir nicht sicher.
Hier meine items.py Datei, gefolgt grundsätzlich die scrapy Tutorial dafür:
from scrapy.item import Item, Field
class GeekItem(Item):
imgsrc = Field()
Zur Klarstellung: Was ich suche die img src URL zu tun ist, zu extrahieren, die auf der Seite ist. Ich muss nicht alle Bildquellen extrahieren, die ich bereits herausgefunden habe (viel einfacher).
Ich suche nur um es zu verengen und extrahieren nur, dass bestimmte URL des img src. (Ich werde dies über mehrere Seiten auf dieser Website verwenden)
Jede Hilfe wird sehr geschätzt!
EDIT - Aktualisiert-Code Ich war immer einige Syntaxfehler mit Geek = Aussenseiter() So habe ich es etwas zu hoffentlich leichter zu verstehen und Funktion
Sie wollen nur das Bild, das eine anklickbare Verbindung ist (zB "kindle-fire-hd.jpg")? – Talvalin
Ja, genau. Ich möchte nicht einmal das Bild selbst zurückgeben, nur die URL für das Bild, damit ich es speichern kann. – Twhyler
Um Verwechslungen zu vermeiden, aktualisieren Sie bitte den ersten veröffentlichten Spider-Code und löschen Sie den zweiten. :) – Talvalin