用水豚提取 url
Extracting url with capybara
我有一个包含多个学生姓名条目的页面,每个学生都有一个 url 指向他的图表。 html 看起来像这样:
<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 中嵌入的(相对的)url?
埃德
urls = page.all('div.student_name a', minimum: 1).map do |link]
link[:href]
end
应该给你网址。 minimum:1
只会让 all
等到至少一个实例出现在页面上,并且在您的特定实例中可能不需要。根据您使用的驱动程序,它们可能是完全规范化的 URL,但如果您确实需要 relative,则剥离它们的域并不难。
我有一个包含多个学生姓名条目的页面,每个学生都有一个 url 指向他的图表。 html 看起来像这样:
<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 中嵌入的(相对的)url?
埃德
urls = page.all('div.student_name a', minimum: 1).map do |link]
link[:href]
end
应该给你网址。 minimum:1
只会让 all
等到至少一个实例出现在页面上,并且在您的特定实例中可能不需要。根据您使用的驱动程序,它们可能是完全规范化的 URL,但如果您确实需要 relative,则剥离它们的域并不难。