Python: die Verwendung von xpath-lokal / auf einem bestimmten element

Ich versuche, die links von einer Seite mit xpath. Das problem ist, ich will nur die links innerhalb einer Tabelle, aber wenn ich den xpath-Ausdruck auf der ganzen Seite werde ich links erfassen, die ich nicht will.

Beispiel:

tree = lxml.html.parse(some_response)
links = tree.xpath("//a[contains(@href, 'http://www.example.com/filter/')]")

Das problem ist, dass die expression auf das gesamte Dokument. Ich befindet sich das element, das ich will, zum Beispiel:

tree = lxml.html.parse(some_response)
root = tree.getroot()
table = root[1][5] #for example
links = table.xpath("//a[contains(@href, 'http://www.example.com/filter/')]")

Aber dass scheint zu sein, das durchführen der Abfrage in der das gesamte Dokument als auch, wie ich immer noch bin der Erfassung der links außerhalb der Tabelle. Auf dieser Seite sagt, dass "Wenn xpath() verwendet wird, auf ein Element, wird der XPath-Ausdruck evaluiert wird, das element (wenn auch relativen) oder gegen die Wurzel des Baumes (wenn absolute):". Also, was ich benutze ist ein absoluter Ausdruck, und ich brauche, um es relativ? Ist es das?

Im Grunde, wie kann ich die Filter nur Elemente, die existieren in dieser Tabelle?

InformationsquelleAutor pvt pns | 2011-01-24

Schreibe einen Kommentar