如何在红宝石上刮下一页

问题描述 投票:-1回答:1

我正在尝试抓取名为https://www.jobsatosu.com/postings/search的网站的下一页。因为工作很多,所以页面很多。我们的团队成功地抓取了这样的首页:

def initialize
        @agent_menu = Mechanize.new
        @page = @agent_menu.get(PAGE_URL)
        @form = @page.forms[0]

我正在努力抓取下一页。另外,还告诉我们在Ruby中使用Nokogiri和Mechanize。我只需要抓取下一页,而不必解析它。

这是我做的:

def next_page
        @page_num += 1
        new_url = "https://www.jobsatosu.com/postings/search?page=#{@page_num}"
        @new_page = @agent_menu.get(new_url)
        @new_form = @new_page.forms[0]
    end

我分享了一个page_num。如果有人调用该方法,则该方法将被1迭代,并获得新的URL,并将其放入@new_page。我还没有测试过,但是对此代码有什么想法吗?

ruby nokogiri mechanize
1个回答
0
投票

使用前需要初始化@page_num = 0

第一次@page_num为零,所以@page_num += 1 提高执行力

NoMethodError: undefined method '+' for nil:NilClass

实际上,您在使用前没有描述变量,但在这种情况下,您需要这样做

© www.soinside.com 2019 - 2024. All rights reserved.