Successfully reported this slideshow.
Your SlideShare is downloading. ×

Einstieg in Xpath für SEO (Campixx2021)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 55 Ad

Einstieg in Xpath für SEO (Campixx2021)

Download to read offline

Meine Präsentation von der SEOCampixx2021 zum Thema "Einstieg in XPath für SEO" stellt die Grundlagen von XPath und deren Anwendung in verschiedenen Tools vor, um gängige Fragen aus dem SEO-Alltag zu beantworten.

Textform unter: https://www.seoseb.de/artikel/texte/xpath-fur-seo-ein-einstieg/

Meine Präsentation von der SEOCampixx2021 zum Thema "Einstieg in XPath für SEO" stellt die Grundlagen von XPath und deren Anwendung in verschiedenen Tools vor, um gängige Fragen aus dem SEO-Alltag zu beantworten.

Textform unter: https://www.seoseb.de/artikel/texte/xpath-fur-seo-ein-einstieg/

Advertisement
Advertisement

More Related Content

Similar to Einstieg in Xpath für SEO (Campixx2021) (20)

Advertisement

Recently uploaded (20)

Einstieg in Xpath für SEO (Campixx2021)

  1. 1. Einstieg in Xpath für SEO Seb Adler | @seoseb 26.08.2021
  2. 2. XML Auszeichnungssprache gut strukturiert besteht aus Nodes haben immer ein öffnendes und ein schließendes Tag Nodes können verschachtelt sein Eltern → Kinder Geschwister haben Eigenschaften (Attribut="Wert") haben Inhalte (= Text Nodes) Wikipedia-Artikel zu XML 2
  3. 3. XML <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.9"> <!-- root node --> <url> <!-- child node --> <loc>https://www.sparkasse.de/</loc> <!-- child node mit text node --> <lastmod>2019-05-31</lastmod> <!-- silbling node --> <changefreq>daily</changefreq> <priority>0.5</priority> </url> <url> <loc>https://www.sparkasse.de/fehlerseite/testseit_startseite.html</loc> <lastmod>2018-03-27</lastmod> <changefreq>daily</changefreq> <priority>0.5</priority> </url> </urlset> → HTML* funktioniert ähnlich * HTML5 ist ein vollwertiger XML Dialekt 3
  4. 4. Xpath Expression Language für XML-Dokumente gedacht um Teile eines XML Dokumentes zu adressieren "Path" → Pfad-Ausdruck wird genutzt um Elemente auszuwählen (z.B.: /Element1/Element2/Element3 ) kann auch auf HTML-Dokumente angewendet werden 4
  5. 5. Xpath ist Deine Wegbeschreibung zum gesuchten Element 5
  6. 6. 6
  7. 7. 7
  8. 8. Xpath Abfragen laufen immer entlang der Dokumentenstruktur <element1> <kind1> inhalt_1 </kind1> <kind2 eigenschaft="wert"> inhalt_2 </kind2> </element1> Finde den Inhalt von kind2 innerhalb von element1 ! /element1/kind2 Ergebnis: inhalt_2 8
  9. 9. XML & Xpath sind sehr strikt ist die HTML-Struktur nicht top, kann die Xpath-Abfrage fehlschlagen Case sensitive ( <div> ist nicht gleich <DIV> ) daher: vorher testen (gleich mehr dazu) 9
  10. 10. XPath & HTML Was steht im Title? Welche Bilder gibt es auf der Seite? Welche Links auf externe Domains gibt es? Wann wurde der Artikel veröffentlicht? … 10
  11. 11. Basics, mit denen du schon recht weit kommst Ausdruck Funktion Beispiel / wählt den Wurzelknoten aus → absoluter Pfad /html/head // alle Knoten im Dokument, die (die darauffolgende) Bedingung erfüllen //p [@ ] wählt Attribute aus //p[@class] //p[@class='content_text'] /.. wählt das Elternelement des zuvor selektierten Knotens //a[@rel='ugc']/.. 11
  12. 12. Was, wenn ich die genaue Struktur nicht kenne? Finde den Inhalt von kind2 innerhalb von irgendeinem Eltern- Element! <element1> <kind1> inhalt_1 </kind1> <kind2 eigenschaft="wert"> inhalt_2 </kind2> </element1> Xpath: //kind2 Ergebnis: inhalt_2 12
  13. 13. aus dem SEO Alltag //title //h1 //h2 //meta[@name='description']/@content //link[@rel='preconnect']/@href 13
  14. 14. Positionen in einer Reihe //kind[5] = Nr. 5 //kind[last()] = Letztes Kind //kind[last()-1] = Vorletztes Kind //kind[position()<3] = alle Kinder vor Position 3 14
  15. 15. Anwendung im Browser, Dev Console (direkt am HTML Dokument) Chrome Addon XPather Firefox Addon Try Xpath Webanwendung, besonders praktisch zum Testen von Schnipseln xpather.com Excel (SEO Tools for Excel) Google Spreadsheets Screaming Frog SEO Spider (Custom Exctraction, Custom Search) 15
  16. 16. im Browser nicht zu empfehlen: /html/body/main/div[4]/div[1]/div[2]/div/div/div[5]/div/a/img funktioniert nur bei exakt gleicher Struktur Browser 16
  17. 17. im Browser ideal zum Kennenlernen der Seite und zum Testen an verschiedenen Templates, vor der tatsächlichen Anwendung 1. Seite öffnen 2. DevTools öffnen ( F12 / STRG + SHIFT + I ) 3. Konsole in den DevTools öffnen ( ESC , oder im oberen Menü) Browser 17
  18. 18. Chrome Console 18
  19. 19. Firefox Console 19
  20. 20. im Browser in der Browser-Konsole werden XPath-Abfragen wie folgt verpackt: $x("XPATH_AUSDRUCK") immer doppelte Anführungszeichen! sonst Probleme bei Text [@rel='canonical'] Browser 20
  21. 21. Beispiel: Firefox $x("//meta[@content]") Browser 21
  22. 22. Beispiel: Chrome $x("//meta[@content]") Browser 22
  23. 23. im Browser Browser geben alle Objekte zurück, die auf die Abfrage passen, inkl. der Browser internen Eigenschaften kann anstrengend sein & Vorteile bringen Browser 23
  24. 24. table($x("//img[@alt]"), ['alt', 'width', 'height']) Browser 24
  25. 25. Xpather Extension Browser 25
  26. 26. xpather.com Browser 26
  27. 27. Google Sheets Importxml Funktion =Importxml(URL;Xpath;Sprache) =IMPORTXML($B2;"//div[@class='search-form__total']") Google Spreadsheets 27
  28. 28. Google Sheets =IMPORTXML(B18;"//title") 28
  29. 29. Google Sheets Link zum Sheet kein JS-Rendering Google Spreadsheets 29
  30. 30. Excel Seo Tools for Excel =XPathOnUrl(url, xpath, attribute, xmlHttpSettings, mode) wenn ein bestimmtes Attribut gesucht wird, kann es mit dem attribute Argument abgefragt werden =XPathOnUrl(url, "//a[@rel='canonical']", "href") Excel 30
  31. 31. Excel 31
  32. 32. Excel kein JS Rendering viele Abfragen lähmen Excel (vorher testen) Zellbezug macht Serienabfragen extrem einfach Bsp.: 1. URLs aus Sitemap → 2. Xpath auf URLs Excel 32
  33. 33. Screaming Frog SEO Spider große Zahl an (ggf. unbekannten) URLs verarbeiten Extraktion von Inhalten mit Xpath Suche nach Inhalten mit Xpath Excel Export Screaming Frog 33
  34. 34. Configuration ↳ Custom Search Extraction Screaming Frog 34
  35. 35. Extractions bietet verschiedene Extraktionsmöglichkeiten enthaltenes HTML, betroffenes Element, Text im Element, Funktionsergebnis Screaming Frog 35
  36. 36. Search sucht nach Text oder RegEx im Quelltext Einschränkung der Suche auf bestimmte Elemente durch Xpath Bsp.: Nach Änderung, den Text im CTA prüfen Screaming Frog 36
  37. 37. Und nun? Crawldaten nachträglich in Excel anreichern in Screaming Frog filtern, ob bestimmt Elemente enthalten sind Über Google Spreadsheets Inhalte von Wettbewerbern scrapen (ohne Crawler) IT hat XY implementeirt - ist XY auch überall vorhanden? Strukturierte Daten - alles da? Wettbewerbs-Seiten untersuchen … 37
  38. 38. Vorgehen 1. suche das betreffende Element im Quelltext 2. geh so tief wie möglich in der Struktur i. verlasse dich nicht auf "Kopieren: Xpath" ii. schau nach Attributen id="xy" oder rel="xy" iii. nutze unbedingt einfache Anführungszeichen ' innerhalb der Ausdrücke und doppelte " für den Xpath iv. probiere Varianten in der Console oder auf xpather.com v. strebe den kürzest möglichen, relativen Pfad an 3. teste den Xpath erst an 2 oder 3 URLs in Excel, Spreadsheets oder Screaming Frog i. probiere "inner HTML" und "extract HTML Element" aus 4. frei 38
  39. 39. Featured Snippet? 40
  40. 40. Featured Snippet? <div> <div> ultra viel gedöns (u.a. das Bild)</div> <div class="mod"> Featured Snippet Text</div> <div class="g">Title + URL mit Link</div> </div> //*[@class='mod']/.. 41
  41. 41. Xpather.com 42
  42. 42. ="https://www.google.de/search?q="&A6&"&hl=de" // baut die Query mit dem Keyword =XPathOnUrl(B6;"//*[@class='mod']/..") // macht die Abfrage über SEO Tools for Excel 43
  43. 43. Auf welchen Seiten haben wir eigentlich Rechner? 44
  44. 44. Screaming Frog SEO Spider 45
  45. 45. Haben wir überall unsere Teaserboxen gepflegt? 46
  46. 46. Haben wir überall unsere Teaserboxen gepflegt? Wieviele Teaserboxen gibt es? Fehlt hier ein Link? welche Seiten werden verlinkt? 47
  47. 47. mögliche XPath-Anweisungen & -Funktionen: count(//*[contains(@class,'if6_teaserarea')]//a/@href)=3 "true" wenn 3 Elemente vorhanden, sonst "false"(Search) count(//*[contains(@class,'if6_teaserarea')]//a/@href) zählt die Elemente, gibt Anzahl zurück (Extraction: Function Value) //*[contains(@class,'if6_teaserarea')]//a/@href gibt Ziel-URLs zurück (Extraction: Text) Screaming Frog SEO Spider 48
  48. 48. Es gibt noch so viel mehr: Achsen Funktionen Berechnungen 49
  49. 49. Cheat Sheet Tools Seo Tools For Excel Deutsch ; ist Englisch , zu extrahierender Inhalt kann optional angegeben werden =XpathOnUrl("http://www.web.de/";"//*[@rel='canonical']";"href") Google Spreadsheet =IMPORTXML("http://www.web.de/","//*[@rel='canonical']/@href") Browser Console $x("//*[@rel='canonical']/@href") 50
  50. 50. Cheat Sheet Xpath übergeordnetes Element - zum "Hangeln" //*[@rel='canonical']/.. Bedingung: "enthält" //a[contains(@href,'http://')]/@href negierte Bedingung: "beginnt nicht mit" //a[not(starts-with(@href,'https'))] Abfragen kombinieren //a[contains(@href,'http://')] | //*[contains(@href,'s-immo.de')] 51
  51. 51. Elemente an ihrer Position ansprechen /buch/kapitel[2]/abschnitt[4]/absatz[17] Div finden, wenn es mehrere Klassennamen hat <div class="first react-container usw-usf"> //div[contains(concat(' ',normalize-space(@class),' '),' react-container ')] Elemente und deren Eigenschaften auf der Browser Console in einer Tabelle ausgeben table($x("//img[@alt]"), ['alt', 'width', 'height']) 52
  52. 52. Lesestoff Xpath https://librarycarpentry.org/lc-webscraping/02-xpath/index.html https://www.w3schools.com/xml/xpath_intro.asp https://www.screamingfrog.co.uk/web-scraping/ https://developer.mozilla.org/en-US/docs/Web/XPath https://wiki.selfhtml.org/wiki/XML/XSL/XPath https://devhints.io/xpath Developer Console https://www.bitdegree.org/learn/chrome-command-line#xpath 53
  53. 53. Seo Tools for Excel https://seotoolsforexcel.com/xpathonurl/ Excel (Excel für Microsoft 365, Excel 2019, Excel 2016, Excel 2013) https://support.microsoft.com/de-de/office/xmlfiltern-funktion- 4df72efc-11ec-4951-86f5-c1374812f5b7 54
  54. 54. @seoseb seoseb.de Sparkassen-Finanzportal Jobs bei uns

×