Как скрести следующую страницу в ruby - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь почистить следующую страницу сайта под названием https://www.jobsatosu.com/postings/search. Поскольку есть много рабочих мест, есть много страниц. Наша команда успешно очистила первую страницу следующим образом:

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

Я работаю над тем, чтобы очистить следующую страницу. Также нам сказали использовать Nokogiri и Mechanize в Ruby. Мне просто нужно почистить следующую страницу и не анализировать ее.

Вот что я сделал:

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. Я не проверял это, но есть мысли по поводу этого кода?

1 Ответ

0 голосов
/ 15 февраля 2020

Вам нужно инициализировать @page_num = 0 перед использованием

В первый раз @page_num равно нулю, поэтому @page_num += 1 повышает исполнение

NoMethodError: undefined method '+' for nil:NilClass

На самом деле вы не описываете переменную перед использованием, но в этом случае вам нужно сделать

...