2017-01-08 69 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