【发布时间】:2016-10-26 20:49:14
【问题描述】:
我在显示多篇文章的商店页面上。我已经可以看到我通过“links_with”获得的所有文章链接。现在我想在一个新功能中抓取文章页面上的内容。我可以到达那里,但我只有一个地址,我想抓取包含内容的多个页面。有没有办法用数组和一些循环来解决这个问题?我是 Ruby 新手,我无法自己解决这个问题。
def self.configureCrawler(page_URL)
agent = Mechanize.new
page = agent.get(page_URL)
article_links = page.links_with(href: %r{.*/p/}) #all links with /p/ in address
article_links.uniq { |link| link.uri }.each do |link| #no double entries
link.click
@target_URL = page.uri + link.uri #full url
puts "#{@target_URL}"
end
startCrawler(@target_URL)
end
def self.startCrawler(article_URL) #the crawling process itself
page = Nokogiri::HTML(open(article_URL))
@id = page.css('CSS STUFF').text.
@name = page.css('CSS STUFF').text
@price = page.css('CSS STUFF').text
#...
puts "id: #{@id}"
puts "name: #{@name}"
puts "price: #{@price}"
end
【问题讨论】:
标签: arrays ruby web-crawler nokogiri mechanize