使用 Nokogiri 和 Mechanize 抓取连续页面直到最后一页

Scraping successive pages until the last page using Nokogiri and Mechanize

我正在尝试从网站上抓取多个页面。我想抓取一个页面,然后单击下一步,获取该页面,然后重复直到我到达终点。 到目前为止我写了这个:

page = agent.submit(form, form.buttons.first)
#submitting a form
while lien = page.link_with(:text=>'Next')
  # while I have a next link on page, keep scraping
  html_body = Nokogiri::HTML(body)
  links = html_body.css('.list').xpath("//table/tbody/tr/td[2]/a[1]")
  links.each do |link|
    purelink = link['href']
    puts purelink[/codeClub=([^&]*)/].gsub('codeClub=', '')
    lien.click
  end
end

不幸的是,使用这个脚本我在无限循环中继续抓取同一页面...我怎样才能实现我想做的事情?

我会试试这个,将 lien.click 替换为 page = lien.click

它应该看起来更像这样:

page = form.submit form.button
scrape page

while link = page.link_with :text => 'Next'
  page = link.click
  scrape page
end

此外,您不需要使用 nokogiri 解析页面主体,mechanize 已经为您完成了。