python如何使用 Xpath 或者 CSS Selector 来定位元素
时间: 2024-04-30 07:24:38 浏览: 181
在 Python 中可以使用 lxml 库或者 Beautiful Soup 库来使用 Xpath 或者 CSS Selector 来定位元素。
1. 使用 lxml 库:
```python
from lxml import etree
# 构建 HTML 树
html = """
<html>
<body>
<div class="content">
<ul>
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.google.com">谷歌</a></li>
</ul>
</div>
</body>
</html>
"""
tree = etree.HTML(html)
# 使用 Xpath 定位元素
result = tree.xpath('//div[@class="content"]/ul/li/a/text()')
print(result) # ['百度', '谷歌']
# 使用 CSS Selector 定位元素
result = tree.cssselect('div.content ul li a')
for item in result:
print(item.text) # 百度 谷歌
```
2. 使用 Beautiful Soup 库:
```python
from bs4 import BeautifulSoup
# 构建 HTML 树
html = """
<html>
<body>
<div class="content">
<ul>
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.google.com">谷歌</a></li>
</ul>
</div>
</body>
</html>
"""
soup = BeautifulSoup(html, 'lxml')
# 使用 CSS Selector 定位元素
result = soup.select('div.content ul li a')
for item in result:
print(item.text) # 百度 谷歌
# 使用 Xpath 定位元素
# 需要安装 lxml 库
tree = etree.HTML(str(soup))
result = tree.xpath('//div[@class="content"]/ul/li/a/text()')
print(result) # ['百度', '谷歌']
```
阅读全文