带有中间元素的LXML的XPath

2024-04-18 08:50:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python和LXML来创建一些页面。我的测试页面是http://www.sarpy.com/oldterra/prop/PDisplay3.asp?ParamValue1=010558233

我对大多数XPath都很幸运。例如

tree.xpath('/html/body/table/tr[1]/td[contains(text(), "Sales Information")]/../../tr[3]/td[1]/text()')

成功地告诉我第一次销售的日期。我还有其他几件。但是,我无法在销售日期下列出B&P。例如,第一次销售的B&P是200639333。你知道吗

我注意到在页面结构中,在B&p项的tr前面有一个form元素。因为它是下一个表行,所以我尝试按如下方式递增tr索引:

tree.xpath('/html/body/table/tr[1]/td[contains(text(), "Sales Information")]/../../tr[4]/td[1]/text()')

结果是:

['\r\n           ']

由于br的换行符和子元素以及字段内的输入,我尝试将text()转换为text()[1]、text()[2]等,但没有成功。你知道吗

我试着将路径从相邻的窗体中移除,如下所示:

tree.xpath('/html/body/table[7]/form[@action="../rod/ImageDisplay.asp"]/following-sibling::tr/td[1]/text()')

运气不好。你知道吗

我认为有两个潜在的问题:可能破坏索引模式的中介表单元素和空白。如果您能帮我纠正这个问题,我将不胜感激。你知道吗


Tags: textformtree元素informationhtmltablebody
1条回答
网友
1楼 · 发布于 2024-04-18 08:50:37

你要找的<tr><form>的孩子,不是它的兄弟姐妹,试试看-

tree.xpath('/html/body/table/tr[1]/td[contains(text(), "Sales Information")]/../../form[1]/td[1]/text()')

这可能会给你200639333带来很多空白。你知道吗

或者-

tree.xpath('/html/body/table[7]/form[@action="../rod/ImageDisplay.asp"]/tr[1]/td[1]/text()')

所有这些元素。你知道吗

相关问题 更多 >