2016-11-05 51 views
2

我有一个包含多个学生姓名的页面,每个学生都有一个导致他图表的URL。在HTML看起来像这样:用水豚提取url

<div class="student_name"> 
    <a target="_blank" data-tn-element="grade-result-link[]" data-tn-link 
    href="/johndoe/b89db3308ddaaed2?sp=0" rel="nofollow" class="student_link" 
    itemprop="url">John Doe</a> 
    <span class="graduated"> - Graduated 2013</span> 
</div> 

我想创建一个网页上的每个学生的唯一的URL列表,但我最终得到的是学生的名字。我使用的是水豚用WebKit和我的代码类似于此:

results = page.all('div.student_name').map do |item| 
    puts(item.text) 
end 

我怎么这句话,所以我只能在href提取嵌入的(相对)的网址?

埃德

回答

2
urls = page.all('div.student_name a', minimum: 1).map do |link] 
    link[:href] 
end 

应该让你的URL。 minimum:1只会使all等待,直到页面上至少有一个实例,并且在您的特定实例中可能不需要该实例。根据你使用的驱动程序,他们可能是完整的标准化的url,但是如果你真的需要亲戚,剥离域名并不困难。

+0

真棒...只是我需要的kickstart。 – firedude144