def poster
mechanize = Mechanize.new
Spider.start_at('http://www.cnn.com/') do |s|
s.add_url_check do |a_url|
a_url =~ %r{^http://www.cnn.com/*}
end
s.on :success do |a_url, resp|
agent = mechanize.get("#{a_url}")
cnnbody = resp.body
parsedcnnbody = Nokogiri::HTML.parse(cnnbody)
tags = parsedcnnbody.xpath("//a")
imgs = parsedcnnbody.xpath("//img")
headers = parsedcnnbody.css("h1")
containers = parsedcnnbody.css(".zn__containers")
containers.each do |container|
container.xpath("//a").each do |link|
Spider.start_at(link['href']) do |d|
d.on :success do |b_url, res|
# @org = Organization.where(title: "CNN").first_or_create!
@parsedbody = Nokogiri::HTML.parse(res.body)
@authorusername = @parsedbody.css(".metadata__byline__author")
puts @authorusername
# @author = User.where(username: @authorusername, organization_id: @org.id).first_or_create!
@parsedtext = @parsedbody.css(".l-container").css(".l-container")
puts @parsedtext
# @post = Post.where(title: parsedbody.css(".pg-headline"), content: parsedtext)
在取消对其余工作的注释之前,我想使用puts参数测试该Spider的输出。
但是,当@org取消注释时,它将循环遍历而不会从puts中显示。
答案 0 :(得分:0)
我通常使用Rails.logger.debug ''
在服务器上显示消息或进行调试。
正如我刚刚检查的那样,我仍然可以使用它来循环显示消息。
希望这会有所帮助