【问题标题】:Scraping successive pages until the last page using Nokogiri and Mechanize使用 Nokogiri 和 Mechanize 抓取连续页面直到最后一页
【发布时间】:2015-06-04 00:26:44
【问题描述】:

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

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

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

【问题讨论】:

  • 你在使用Nokogiri以外的宝石吗?
  • 是的,我也在使用 Mechanize

标签: ruby web-scraping nokogiri mechanize


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    它应该看起来更像这样:

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

    另外,您不需要使用 nokogiri 解析页面正文,mechanize 已经为您完成了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      相关资源
      最近更新 更多