我正在尝试在刮板中进行逆向工程,以生成用于提取数据的模型。
因此,我知道页面的标题,并且想在HTML代码中查找它,然后将XPath或CSS选择器返回到该位置。
我在项目中使用Scrapy,但是,对于这种反向工程,我认为也许Beautiful Soup 4与lxml解析器结合也可以为我提供帮助。我只是没有找到有关它的任何文档。
有人知道是否有办法吗?
答案 0 :(得分: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