2016-11-05 8 views
2

私は学生名の複数のエントリを持つページがあり、各学生は自分のグラフにつながるURLを持っています。私は、ページ上の各学生のURLのみでリストを作成したいが、私はで終わるすべては学生の名前ですカピバラで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> 

:HTMLは次のようになります。私はWebKitのでカピバラを使用していて、私のコードは次のようになります。

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

がどのようにフレーズが、これは私だけのhrefに埋め込まれた(相対)URLを抽出することができますか?

エド

答えて

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

はあなたのURLを取得する必要があります。 minimum:1は、少なくとも1つのインスタンスがページに表示されるまで待つだけで、特定のインスタンスでは必要ない場合があります。all使用しているドライバによっては正規化された完全なURLであるかもしれませんが、ドメインを取り除くのは難しいことではありません。

+0

素晴らしい...私が必要としたちょうどキックスタート。 – firedude144