2016-07-31 16 views
0

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?

+0

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 –

Antwort

0

Ich kann nicht finden, eine ID mit dem Namen doc auf der Seite zu finden, die Sie versuchen, zu kratzen, haben Sie möglicherweise nicht eine start response.xpath festgelegt. tun Sie das gleiche Ergebnis, wenn Sie sollten, so ändern, wie:

response.xpath('//*div[@id="subcategories-div"]/section/div/div/a/@href').extract() 
+0

[This] (https://i.imgur.com/NdeBjOF.png) ist, was in Chrome auf OSX aussieht. Ich boxte die Doc-ID. Auch das Hinzufügen des Sternchens führt zu demselben Ergebnis. –

+0

oder versuchen Sie den folgenden xpath: // * [@ id = "cat-list-content-main"]/div/a/@ href '). Extract() – user1443063

+0

könnten Sie vielleicht einen Dump der Ausgabe hinzufügen, die Sie erhalten Erhalte ein besseres visuelles Bild der Ausgabe – user1443063