基于“嵌套属性”的刮擦

时间:2018-02-15 03:38:04

标签: css-selectors scrapy scrapy-spider

在创造了一些不同的蜘蛛后,我认为我几乎可以刮掉任何东西,但我遇到了障碍。

给出以下代码片段:

<div class="col-md-4">
    <div class="tab-title">Homepage</div>
    <p>
        <a target="_blank" rel="nofollow" 
         href="http://www.bitcoin.org">http://www.bitcoin.org
        </a>
    </p>
</div>

如何根据<a ... </a> div中的文字选择tab-title内的链接?

我需要这个条件的原因是因为有几个其他链接符合这个条件:

response.css('div.col-md-4 a::attr(href)').extract()

我最好的猜测如下:

response.css('div.col-md-4 div.tab-title:contains("Homepage") a::attr(href)').extract()

任何见解都表示赞赏!先感谢您。

注意:我正在使用Scrapy。

1 个答案:

答案 0 :(得分:2)

使用XPath如何:

div

在内部找到包含tab-title的班级Homepage的{​​{1}},然后升级到家长并在任何级别查找a子级。

修改: 使用CSS,你应该能够这样做:

response.css('div.tab-title:contains("Homepage") ~ * a::attr(href)')