2017-01-08 36 views
0

我想报废的HTML如下:CSS选择器不提供的类找到元素

<a class="mobile_board_link" href="board.php"><b>...</b></a> 

我创建以下的元素的CSS选择器:

.mobile_board_link a::attr(href) 

但如果我执行它在scrapy外壳中甚至不会找到类手机板链接的任何元素。我究竟做错了什么?

+0

尝试'a.mobile_board_link'而不是 – haim770

+0

它甚至没有找到一个elments。 [href]是另一种语法:: atr()? – R3turnz

+0

对不起。查看我的修改注释 – haim770

回答

1

这是你的选择:

.mobile_board_link a::attr(href) 

问题:

  • 空间意味着后代,所以你正在努力寻找你的.mobile_board_link内部锚,而不是与该类
  • 找到一个锚( 以斜体显示的文字,如下面的内容是错误的,正如在评论部分中指出的那样,它在底部在评论部分作为已经指出的那样,你需要[href]代替::attr(href)

因此,这是你的选择应该什么样子:

a[href].mobile_board_link 

编辑:

显然::attr(href)是正确的Scrapy,因此这是一个正确的选择器:

a.mobile_board_link::attr(href) 
+1

如果他们正在查找href属性的值,那么不需要使用[href]通过其href选择元素,它们只需使用:: attr(href)即可直接获取该值。这是Scrapy的一项功能。 – BoltClock

+0

@BoltClock谢谢你指出,我已经编辑了我的答案。 –

+1

也许考虑从这个答案中删除不正确的信息(关于:: attr错误)? – eis