/ / Im Crawler von import.io kann nicht der richtige XPath für Webseitenelemente ermittelt werden - xml, xpath, web-crawler, import.io

Im crawler von import.io konnte der richtige XPath für Webseitenelemente nicht abgerufen werden - xml, xpath, web-crawler, import.io

Ich versuche eine.CSV-Datei mit den Filmdaten von der Website Allociné (der größten französischen Filmdatenbank) für ein Forschungsprojekt mit dem Crawler von import.io, da ich keine ausreichenden Programmierkenntnisse habe (derzeit einen Doktortitel in Ökologie) und einfach zu handhaben bin. Werkzeug zu verstehen schien die beste Idee.

Für jeden Film brauche ich:

  1. der Titel des Films
  2. das Erscheinungsdatum ("Date de Sortie" in FR)
  3. das Genre (die Genres) des Films

Hier ist ein Beispiel für eine Allociné-Filmseite (für Star Wars I): http://www.allocine.fr/film/fichefilm_gen_cfilm=20754.html

Zuerst habe ich versucht, den Import zu verwenden.ios auswahltool, aber es hat nicht funktioniert, weil einige filme zwei veröffentlichungsdaten anstelle von einem haben (wie SW1 oben - originalveröffentlichung 1999 und 3D-veröffentlichung ("reprise") 2012) - die mit dem Crawler schraubten. Also ich Ich musste XPaths verwenden, um die Elemente zu identifizieren, die ich brauche //title), aber ich habe Probleme mit Veröffentlichungsdaten und Genres.

Für Veröffentlichungstermine ist der XPath, den ich aus der Quelle der Seite extrahiert habe:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span

Ich fügte hinzu /@content am Ende, um das Datum im Format JJJJ-MM-TT zu erhalten, was zu folgenden Ergebnissen führte:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[2]/td/a/strong/span/@content

Import.io erkennt jedoch nicht das Element, zu dessen Suche ich ihn benötige.

Für Genres habe ich diesen XPath von Chrome für das erste Genre (Science-Fiction) erhalten:

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a[1]/span

Ich brauche import.io, um alle Genres zu sammeln, also habe ich die entfernt [1] von a[1] um die Gesamtheit von a.

//*[@id="col_main"]/div[4]/div/div[2]/table/tbody/tr[5]/td/a/span

Es funktioniert auch nicht, import.io gibt ein Null-Element zurück.

Daher wäre jede Erklärung, warum es nicht funktioniert, sehr dankbar! Und tut mir leid, wenn ich etwas sehr offensichtliches verpasst habe, wie ich sagte, bin ich überhaupt kein Spezialist.

Blaise

Antworten:

2 für die Antwort № 1

Für das Erscheinungsdatum versuchen Sie:

// span [@ itemprop = "datePublished"] / @ content

Dies bedeutet im Grunde: Suchen Sie einen Span-Knoten mit dem Attribut "datePublished" und extrahieren Sie das Attribut "content".

Und für das Genre versuchen:

// span [@ itemprop = "genre"] / text ()

Dies bedeutet, dass Sie einen Span-Knoten mit dem Attribut "Genre" finden und den darauf folgenden Text extrahieren.