XPath-Daten-Scraping aus einer Online-Community mit Excel

XPath-Daten-Scraping aus einer Online-Community mit Excel

Ich habe das kürzlich gelesenArtikelwie man das Profil der Inbound.org-Community-Mitglieder mit Excel scrapt. Und Sie können sich dieVideohier, wenn Sie es so bevorzugen.

Seit der Veröffentlichung dieses Tutorials hat sich die Struktur der Inbound-Website ein wenig geändert. Wie Sie bei Minute 11:00 im Video sehen können, sieht der XPath der Social-Media-Symbole etwas anders aus, wenn Sie versuchen, ihn zu kopieren. Aus diesem Grund war es mir nicht möglich, diese Informationen zu extrahieren.

Folgendes bekomme ich jetzt:

/html/body/div[3]/div/div/div[1]/div/div[2]/a[1]/i

So habe ich die Syntax in Excel geschrieben:

=XPathOnUrl(A2,"//a[@class='twitter']","href")

Und dann so:

=XPathOnUrl(A2,"//a[contains(@class,twitter)]/@href")

Obwohl ich es auf vielen verschiedenen Wegen versucht habe, wurde mir auf keinem Weg der Link zum Social-Media-Profil des Mitglieds angezeigt.

Ich habe sogar versucht, den XPath auf verschiedene Weise zu ändern, um unterschiedliche Daten von der Seite zu erhalten, aber keine davon waren die Social-Media-Informationen:

=XPathOnUrl(A2,"//*[contains(@class,member-banner-tagline)]/div[2]/div/div/div[1]/div/div[1]")

=XPathOnUrl(A2,"//*[contains(@class,member-banner-tagline)]/div[2]/div/div/div[1]/div/h1")

Ich weiß ehrlich gesagt nicht mehr, was ich versuchen soll, irgendetwas stimmt nicht und ich komme nicht dahinter. Hat jemand genug Erfahrung damit oder kann das Problem hier anhand meiner Syntax genau bestimmen?

Vielen Dank

Antwort1

Laut Firefox/Firebug lautet der eindeutige XPath zur Twitter-URL eines Benutzers:

/html/body/div[2]/div/div/div[1]/div/div[2]/a[1]

Das ist etwas anders als Ihr erster Versuch. NB: Ich habe meinen ersten Versuch geändert. Sie möchten nicht das /iam Ende, sonst erhalten Sie das innere Element und nicht das <a>mit der URL darauf.

Beim zweiten Versuch wird jedoch mit Sicherheit das richtige HTML-Element gefunden, das die URL enthält, und es ist robuster.

Ihr dritter Versuch funktioniert nicht mit XPathOnUrl, obwohl er in Google Docs ImportXML funktioniert, da er die Attributsyntax nicht unterstützt.

verwandte Informationen