爬虫 xpath() 基础+提升 必备秘籍 超详细 建议保留
warning:
这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
Xpath是一种在XML(HTML)文档中查找信息的语言,可以用来在XML、HTML文档中对元素和属性进行遍历。在Python中,我们可以使用lxml库或者BeautifulSoup库来解析HTML并使用Xpath表达式进行元素的定位和数据的提取。
- 基础用法
安装lxml库:
pip install lxml使用lxml库解析HTML并使用Xpath表达式:
from lxml import etree
html = """
<div>
<ul>
<li class="item-0">first item</li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-0"><a href="link3.html">third item</a></li>
<li class="item-1"><a href="link4.html">fourth item</a></li>
</ul>
</div>
"""
element = etree.HTML(html)
result = element.xpath('//li/@class')
print(result) # 输出所有li标签的class属性值- 使用Xpath提取动态加载的数据
如果你正在使用的网站使用JavaScript动态加载数据,你可能需要与浏览器自动化工具结合使用,如Selenium。
安装selenium库:
pip install selenium使用selenium和ChromeDriver:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://example.com')
# 使用Xpath定位元素
element = driver.find_element_by_xpath('//div[@class="content"]')
print(element.text)
driver.close()- 使用Xpath进行条件查询
# 查询class属性为item-0的li标签
result = element.xpath('//li[@class="item-0"]')- 使用Xpath索引查询
# 查询第一个li标签
result = element.xpath('//li[1]')- 使用Xpath文本查询
# 查询第一个li标签的文本
result = element.xpath('//li[1]/text()')- 使用Xpath属性查询
# 查询第一个a标签的href属性
result = element.xpath('//a[1]/@href')- 使用Xpath关系查询
# 查询父节点下的第一个子节点的文本
result = element.xpath('//div/ul/li[1]/a/text()')- 使用Xpath通配符查询
# 查询所有的li标签
result = element.xpath('//li[@*]')- 使用Xpath轴查询
# 查询所有的li标签下的所有子节点
result = element.xpath('//li//*')- 使用Xpath函数
# 查询所有的li标签的数目
result = element.xpath('count(//li)')以上就是Xpath的基础和提升,在实际应用中,可以根据需要进行更复杂的查询。
评论已关闭