Ich benutze die Scrapy-Shell, um alle Links in den Unterkategorien Abschnitt dieser Website zu greifen: https://www.dmoz.org/Computers/Programming/Languages/Python/.Suche nach einem Xpath zurückgibt Ergebnisse außerhalb eines Elements mit einem angegebenen Attribut in scrapy
Es ist wahrscheinlich eine effizientere XPath, aber die, die ich kam war:
//div[@id="subcategories-div"]/section/div/div/a/@href
Soweit ich von der Seite Quelle sagen kann, gibt es nur ein div
Element mit einem [@id="subcategories-div"]
Attribut, so von Dort beschränke ich mich, bis ich die Verbindung href
finde. Das funktioniert, wenn ich in Chrome nach diesem Xpath suche.
Aber wenn ich laufen
response.xpath('//div[@id="subcategories-div"]/section/div/div/a/@href').extract()
in scrapy, es gibt mir die Links zurück ich suche, aber dann aus irgendeinem Grund, es gibt auch Links von //*[@id="doc"]/section[8]/div/div[2]/a
Warum ist das passiert, da nirgendwo in diesem Pfad ein div
Element mit einem [@id="subcategories-div"]
Attribut?
Interessanterweise ändert meine XPath '// div [@ id = "Unterkategorien-div"]/Abschnitt [@ class =“ Kinder "]/div/div/a/@ href'' haben es für mich getan. Aber ich vermute, dass meine Frage, warum mein ursprünglicher Xpath nicht funktionierte, immer noch steht –