我正在尝试在刮刀中进行逆向工程以生成模型来提取数据。
所以,我知道页面的标题,我想在HTML代码中查找它,然后将XPath或CSS选择器返回到此位置。
我在我的项目中使用Scrapy,但是,对于这种逆向工程,我认为也许Beautiful Soup 4结合lxml解析器也可以帮助我。我还没有找到任何关于它的文档。
有谁知道有没有办法做到这一点?
如果您实际使用的是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