gpt4 book ai didi

Ruby Mechanize 单击不起作用

转载 作者:行者123 更新时间:2023-12-04 16:21:20 27 4
gpt4 key购买 nike

这是我现在代码的抓取部分

while counter <= 3
url = "http://www.indeed.ca/jobs?q=" << job_title_search << "&l=" << job_location << ",+ON&start=" << (counter * 20).to_s
counter += 1
doc = Nokogiri::HTML(open(url))

# can't put in if loop to only perform once for some reason
page = agent.get(url)

current_page = agent.page.uri
puts current_page

doc.css(".result").each do |item|
job_title = item.at_css(".jobtitle").text[/[^\s][a-zA-Z -]*/]
job_company = item.at_css(".company").text[/[^\s][a-zA-Z -]*/]
full_job = job_title + " - " + job_company

agent.current_page.link_with(:class => '.jobtitle').click
posting_page = agent.page.uri
puts posting_page

if cache.include?(full_job) == false
cache << full_job
puts "#{job_title} - #{job_company}"
end
end

puts ""
end

我知道'.jobtitle' 类存在的事实,因为返回职位标题的部分工作正常。我想弄清楚的是为什么 Mechanize 不允许我使用“点击”功能。在我在维基百科主页上进行的其他测试中,它在 CSS ID、类和文本上运行良好。

所以我的问题是是什么导致点击功能失败?它生成的错误是通用的“未定义方法 'click' for nil:NilClass”。

最佳答案

错误消息告诉我们您正在调用的对象是 click方法是 nil .您调用 click这里:

agent.current_page.link_with(:class => '.jobtitle').click

...因此我们可以推断您调用的电话是 link_with正在返回 nil .

我认为这是失败的,因为您的页面没有带有 class 的链接。属性等于 .jobtitle .相反,您的页面可能有一个带有 class 的链接。属性等于 jobtitle .所以:
agent.current_page.link_with(:class => 'jobtitle').click

关于Ruby Mechanize 单击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38984814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com