在Python爬虫中,XPath常用于解析HTML和XML文档,用于定位和抽取特定的内容。以下是一个简单的应用案例:
假设我们要爬取一个网页上的书籍信息,包括书名和价格。首先,我们需要使用requests库来获取网页的HTML内容,然后使用lxml库中的etree模块来解析HTML。
import requests
from lxml import etree
url = 'http://example.com/books'
response = requests.get(url)
html = response.text
# 使用etree.HTML()方法将HTML文本转换为Element对象
tree = etree.HTML(html)
# 使用XPath定位书名和价格的元素
book_names = tree.xpath('//div[@class="book"]/h2/text()')
prices = tree.xpath('//div[@class="book"]/span/text()')
# 打印书名和价格
for i in range(len(book_names)):
print('书名:', book_names[i])
print('价格:', prices[i])
在上面的示例中,我们首先发送了一个GET请求获取了网页的HTML内容,然后使用etree.HTML()方法将HTML文本转换为Element对象。接着,我们使用XPath定位了书名和价格的元素,然后循环遍历打印出每本书的书名和价格。
这只是一个简单的应用案例,XPath在Python爬虫中还有很多其他的应用场景,例如定位特定的链接、抽取表格数据等。XPath是Python爬虫中非常强大的工具,可以帮助我们快速有效地抽取网页中的数据。