我在 python 中使用 lxml 实现HTML和XML解析 . 设置像这样的解析器
parser = lxml.etree.HTMLParser()
并从HTML源返回一个树(字符串)
tree = lxml.etree.fromstring(html, parser).getroottree() # Returns a XML tree
根据 lxml 文档,这应该返回 DOM tree (XML)
我想找到某些带有标签的元素,例如“a”,“div”,“span”等 .
如何使用标签名称获取所有可能元素的 XPath ?
EDIT :我实际上正在开发一个AJAX爬虫,所以我需要Selenium来点击某些可以改变DOM状态的元素 . 我将HTML源发送到lxml进行分析 .
例如,在列表中采用默认元素
["a", "button", "li", "nav", "ol", "span", "ul", "header", "footer", "section"]
我需要获取上述元素的xpath,以便我可以将它们传递给Selenium以进行单击,以及其他事件触发器 .
2 回答
你真的不需要使用单独的解析器,
selenium
本身在Locating Elements方面非常强大:我总是发现使用“美丽的汤”使这种事情变得更容易 .
http://lxml.de/elementsoup.html
这里已经有很多类似的问题,请尝试:
retrieve links from web page using python and BeautifulSoup