首页 > 解决方案 > 如何在 ruby​​ 中抓取下一页

问题描述

我正在尝试抓取名为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. 我还没有对此进行测试,但是对此代码有什么想法吗?

标签: rubynokogirimechanize

解决方案


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

第一次@page_num是 nil 所以@page_num += 1 提高了执行

NoMethodError: undefined method '+' for nil:NilClass

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


推荐阅读