我试图展示"没有网站"如果没有可用的网站链接。我的代码如下。它运行但不会显示"没有网站"。
links = page.css("a.track-visit-website")
links.each do |link|
if links == nil
puts "no website"
else
puts "#{link['href']}"
end
end
Nokogiri的新手,我在这里做错了什么。
如果你想要复制,这是脚本。
require 'rubygems'
require 'nokogiri'
require 'open-uri'
page = Nokogiri::HTML(open("http://www.yellowpages.com/austin-tx/screen-printing?g=Austin%2C+TX&q=screen+printing"))
links = page.css("a.track-visit-website")
links.each do |link|
if links == nil?
puts "no website"
else
puts "#{link['href']}"
end
end
答案 0 :(得分:2)
您需要找到代表结果或公司的元素。只有从那里才能确定该公司是否有网站。
假设您只关心实际搜索结果中列出的公司,以下内容将遍历公司并获取其网站(如果可用)或输出任何网站:
require 'nokogiri'
require 'open-uri'
page = Nokogiri::HTML(open("http://www.yellowpages.com/austin-tx/screen-printing?g=Austin%2C+TX&q=screen+printing"))
companies = page.css('#results div.result')
companies.each do |company|
website_link = company.at_css("a.track-visit-website")
if website_link
puts website_link['href']
else
puts 'no website'
end
end
答案 1 :(得分:1)
您正在测试nil的整个链接数组而不是单个元素。尝试做
if link.nil?
puts "No Website"
else
....