2016-02-12 113 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"]