CSS Selector获取元素属性值

时间:2014-07-28 01:47:40

标签: python css-selectors web-scraping scrapy

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()  

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

我该怎么做?

2 个答案:

答案 0 :(得分:15)

::attr(value)标记获取a

演示(使用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>

答案 1 :(得分:4)

你可以试试这个:

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