2016-02-12 65 views
0

我無法使用Mechanize選擇href。我過去用以下方法成功地完成了這項工作,但對於這個網站來說,它似乎並不奏效。有沒有人有任何想法?無法從元素訪問href

這裏只是選擇的輸出的一個片段:

<div class="component-user-name component-user-name-15"> 
<a class="name-page-link" data-reco-action="view" 
href="/profile/name">Name</a> 

這是我的嘗試:

agent.page.search(".selector a").map {|link| link["href"]} 
agent.page.search(".selector a["href"]") 
agent.page.search(".selector a")[0]["href"] 
agent.page.search(".selector a").attribute["href"] 
+0

目前,您的代碼是否仍然適用於過去的其他網站,並且不適用於某些網站? – sawa

+0

我不確定機械化是如何工作的,但是可能是因爲頁面上的一些DOM元素是用JavaScript創建的,並且無法通過機械化檢測到?如果是這樣的話,一個解決方案可能是從網站下載html和腳本,並在selenium等無頭瀏覽器上重現網頁。 – sawa

+0

該代碼適用於其他網站 – phil

回答

0

試試這個(HTML不同的是,你不能這樣做,從不同的複製&粘貼網站;)):

agent.page.search('a.name-page-link').attribute('href') 
0

如果看起來確實如此,那麼:

agent.page.at("a.name-page-link")["href"]