有没有办法在HTML文件中找到一个字符串并返回其XPath?

问题描述 投票:0回答:1

我正在尝试在刮刀中进行逆向工程以生成模型来提取数据。

所以,我知道页面的标题,我想在HTML代码中查找它,然后将XPath或CSS选择器返回到此位置。

我在我的项目中使用Scrapy,但是,对于这种逆向工程,我认为也许Beautiful Soup 4结合lxml解析器也可以帮助我。我还没有找到任何关于它的文档。

有谁知道有没有办法做到这一点?

beautifulsoup scrapy lxml python-3.7
1个回答
2
投票

如果您实际使用的是lxml,则可以使用getpath() ...

from lxml import etree

xml = """
<doc>
    <one>
        <two>
            <test>foo</test>
        </two>
        <two>
            <test>bar</test>
        </two>
    </one>
</doc>
"""

tree = etree.fromstring(xml)

for match in tree.xpath("//*[contains(text(),'bar')]"):
    print(etree.ElementTree(tree).getpath(match))

这打印:

/doc/one/two[2]/test
© www.soinside.com 2019 - 2024. All rights reserved.