python parsel用css有多个属性的a标签
时间: 2024-05-02 22:19:33 浏览: 9
可以参考以下代码:
```python
from parsel import Selector
html = """
<div>
<a href="http://www.example.com" class="link" target="_blank">Link text</a>
<a href="http://www.example.com" class="link" id="link2" target="_blank">Link text</a>
</div>
"""
selector = Selector(text=html)
# 选取class为link且id为link2的a标签
a_tags = selector.css('a.link#link2')
# 输出链接
for a in a_tags:
print(a.attrib['href'])
```
相关问题
python parsel css选择器
Parsel 是一个基于 Selectors 语法的 CSS 选择器库,可以用于在 Python 中解析 HTML 和 XML 文档。Parsel 提供了一种类似于 jQuery 的方式来查询文档,使用 CSS 选择器来查找元素。
以下是使用 Parsel 进行 CSS 选择器的基本示例:
```python
from parsel import Selector
html = """
<html>
<body>
<div class="post">
<h2 class="title"><a href="#">Title 1</a></h2>
<p class="content">Content 1</p>
</div>
<div class="post">
<h2 class="title"><a href="#">Title 2</a></h2>
<p class="content">Content 2</p>
</div>
</body>
</html>
"""
selector = Selector(text=html)
# 使用 CSS 选择器查找元素
titles = selector.css(".post .title a::text").getall()
contents = selector.css(".post .content::text").getall()
print(titles)
print(contents)
```
输出结果为:
```
['Title 1', 'Title 2']
['Content 1', 'Content 2']
```
在上面的示例中,我们使用 `Selector` 类将 HTML 文本转换为 `Selector` 对象。然后,我们使用 `css` 方法来对文档进行查询。在这个例子中,我们使用 CSS 选择器 `.post .title a::text` 查询所有文章标题,使用 `.post .content::text` 查询所有文章内容。最后,我们使用 `getall` 方法获取所有匹配的元素的文本内容。
Parsel+css选择器
Parsel是一个基于Python的库,它允许你使用CSS选择器来解析HTML和XML文档。通过使用Parsel,你可以方便地从网页中提取所需的数据。
下面是一个使用Parsel和CSS选择器的简单示例:
```python
from parsel import Selector
# 创建一个Selector对象,将HTML文档传递给它
html = """
<html>
<body>
<ul>
<li class="multi-chosen"><a href="https://www.example.com">Link 1</a></li>
<li><a href="https://www.example.com">Link 2</a></li>
<li class="multi-chosen"><a href="https://www.example.com">Link 3</a></li>
</ul>
</body>
</html>
"""
selector = Selector(text=html)
# 使用CSS选择器选取class为multi-chosen的li元素下的所有a元素
links = selector.css('li.multi-chosen > a')
# 遍历并打印选取到的链接文本和URL
for link in links:
text = link.css('::text').get()
url = link.attrib['href']
print(f"Link text: {text}")
print(f"Link URL: {url}")
```
运行上述代码,你将会得到以下输出:
```
Link text: Link 1
Link URL: https://www.example.com
Link text: Link 3
Link URL: https://www.example.com
```
这个示例演示了如何使用Parsel和CSS选择器来选取HTML文档中class为multi-chosen的li元素下的所有a元素,并提取它们的文本和URL。