ruby - 如何在 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
. 我还没有对此进行测试,但是对此代码有什么想法吗?
解决方案
@page_num = 0
使用前需要初始化
第一次@page_num
是 nil 所以@page_num += 1
提高了执行
NoMethodError: undefined method '+' for nil:NilClass
实际上你在使用之前没有描述变量,但在这种情况下,你需要做
推荐阅读
- python - PySimpleGUIQt - 按下键或按钮作为动作
- scala - 获取 bigquery 表的描述
- javascript - 如何在点击手风琴时激活相应的图像?
- javascript - 如何在 React Native 中调用另一个函数内部的函数
- javascript - 无法在 node.js 中的模块外部使用 import 语句
- android-viewpager - 如何在 Jetpack Compose 中双向滚动
- logback - Logback - 仅记录消息而不是特定异常的堆栈跟踪
- java - 错误创建名称为通过字段表示的不满足依赖关系的 bean
- jq - jq: combine multi array in dict without permutate
- unity3d - 如何将属性分配给 Unity 中的类?