Ruby | Webcrawler - gem mechanize .click

0

Witam
Piszę webcrawlera do strony imdb.com.
taki mam już kod

require 'mechanize'

agent = Mechanize.new

main_page = agent.get 'http://imdb.com'
list_page = main_page.link_with(text: "Top Rated Movies ").click
rows = list_page.root.css(".lister-list tr")
rows.take(7).each do |row|
  title = row.at_css(".titleColumn a").text.strip
  rating = row.at_css(".ratingColumn strong").text.strip
  movie_page = list_page.link_with(text: title).click
  year = movie_page.root.at_css(".header .nobr a").text.strip
  director = movie_page.root.at_css("div[itemprop=director] a span").text.strip

  puts "#{title} #{rating} #{year} #{director}"
end

a taki wywala mi błąd

/home/karol/Pulpit/Ruby Videopoint/27 WebCrawler/imdb.rb:6:in `<main>': undefined method `click' for nil:NilClass (NoMethodError)

2

wszystko jest w wyjątku:

undefined method click' for nil:NilClass (NoMethodError)`

czyli, chcesz kliknąć coś, czego nie ma. Ty szukasz linka z tekstem:

link_with(text: "Top Rated Movies ")

podczas gdy w kodzie strony jest:

<a href="/chart/top?ref_=ft_250">Top Rated Movies</a>

gdzie jest Wally?

1 użytkowników online, w tym zalogowanych: 0, gości: 1