我在 python 中使用 lxml 实现HTML和XML解析。 设置像
这样的解析器parser = lxml.etree.HTMLParser()
并从HTML源代码返回树(字符串)
tree = lxml.etree.fromstring(html, parser).getroottree() # Returns a XML tree
根据 lxml 文档,这应返回 DOM树(XML)
我想找到某些标签,例如" a"," div"," span"等等。
如何使用标签名称获取所有可能元素的 XPath ?
编辑:我实际上正在开发一个AJAX抓取工具,所以我需要Selenium来点击某些可以改变DOM状态的元素。我将HTML源发送到lxml进行分析。
例如,在列表中使用默认元素,如
["a", "button", "li", "nav", "ol", "span", "ul", "header", "footer", "section"]
我需要获取上述元素的xpath,以便我可以将它们传递给Selenium进行点击,以及其他事件触发器。
答案 0 :(得分:2)
您并非真的需要使用单独的解析器,selenium
本身在Locating Elements
方面非常强大:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('url_goes_here')
list_of_elements = ["a", "button", "li", "nav", "ol", "span", "ul", "header", "footer", "section"]
for tag_name in list_of_elements:
for element in browser.find_elements_by_tag_name(tag_name):
print element
答案 1 :(得分:0)