CSS Selector 获取元素属性值

Posted

技术标签:

【中文标题】CSS Selector 获取元素属性值【英文标题】:CSS Selector to get the element attribute value 【发布时间】:2014-09-19 04:22:36 【问题描述】:

html结构是这样的:

<td class='hey'> 
<a href="https://example.com">First one</a>
</td>

这是我的选择器:

m_URL = sel.css("td.hey a:nth-child(1)[href] ").extract()  

我的选择器现在将输出&lt;a href="https://example.com"&gt;First one&lt;/a&gt;,但我只希望它输出链接本身:https://example.com

我该怎么做?

【问题讨论】:

【参考方案1】:

你可以试试这个:

m_URL = sel.css("td.hey a:nth-child(1)").xpath('@href').extract()

【讨论】:

所以css不能不做吗?因为我是用xpath写的。并想练习如何翻译成css【参考方案2】:

a 标记中获取::attr(value)

演示(使用Scrapy shell):

$ scrapy shell index.html
>>> response.css('td.hey a:nth-child(1)::attr(href)').extract()
[u'https://example.com']

其中index.html 包含:

<table>
    <tr>
        <td class='hey'>
            <a href="https://example.com">Fist one</a>
        </td>
    </tr>
</table>

【讨论】:

以上是关于CSS Selector 获取元素属性值的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 样式属性元素操作动画效果尺寸位置操作

jQuery属性-attr()方法

CSS一个元素同时使用多个类选择器(class selector)

获取设置的元素 CSS 属性(宽度/高度)值(以百分比/em/px/等为单位)

jQuery的操作及事件处理

使用python处理selenium中的css_selector定位元素的模糊匹配问题