2016-11-05 47 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