python的css选择器_Python:在lxml.cssselect中使用的CSS选择器

我试图使用lxml.html和使用CSSSelector而不是XPath来解析下面给出的HTML代码。link = doc.cssselect('html body div.results dl dt a)

上面的代码将我的content-1和content-2作为输出,但我想要的输出是link 1 link 2。所以我用替换了我的代码

link = doc.cssselect('html body div.results dl dt a[href]')

但仍然得到相同的产出。所以我的问题是,获取href属性的正确CSS选择器是什么。

some tags here

content-1

content-2

最佳答案:

我相信你不能通过css选择器得到属性值。你应该得到元素…>>> elements = doc.cssselect('div.results dl dt a')

…然后从中获取属性:

>>> for element in elements:

... print element.get('href')

...

/link 1

/link 2

当然,列表理解是你的朋友:

>>> [element.get('href') for element in elements]

['/link 1', '/link 2']

由于您不能更新CSS中属性的属性,我相信通过CSS选择器获取它们是没有意义的。您可以在CSS选择器中“提到”属性,以便只检索与其元素匹配的属性。然而,IS只是一种思考,我可能是错的;如果我是错的,请有人纠正我:)好吧,@tim diggs在下面证实了我的假设:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PythonCSS选择器用于在HTML文件选择特定的元素并为其添加样式。使用CSS选择器可以更精确地选择目标元素并设置样式。在Python,可以使用第三方库如BeautifulSoup或lxml来解析HTML文件并使用CSS选择器进行元素选择。 在Python使用CSS选择器的一种常见方法是使用BeautifulSoup库。该库提供了一个方法`select()`,可以使用CSS选择器选择HTML元素。例如,要选择所有具有class为"my-class"的div元素,可以使用以下代码: ``` from bs4 import BeautifulSoup html = """ <div class="my-class">This is a div with class "my-class".</div> <div>This is a div without class.</div> """ soup = BeautifulSoup(html, "html.parser") divs = soup.select("div.my-class") for div in divs: print(div.text) ``` 这将输出: ``` This is a div with class "my-class". ``` 在上面的例子,我们首先创建了一个HTML字符串,然后使用BeautifulSoup库解析HTML。然后,使用`select()`方法选择所有具有class为"my-class"的div元素,并打印它们的文本内容。 除了BeautifulSoup,还有其他一些库可以在Python使用CSS选择器,如lxml和pyquery等。它们的使用方式略有不同,但基本原理是相似的。 总结起来,PythonCSS选择器是一种用于选择HTML元素并为其添加样式的方法。可以使用第三方库如BeautifulSoup来实现CSS选择器的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python学习 day47之CSS选择器](https://blog.csdn.net/wuzeipero/article/details/108622643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [CSS样式与选择器Python)](https://blog.csdn.net/qvqqv/article/details/130181076)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值