ruby - 弃用 : HTTParty will no longer override `response#nil?` . 这个弃用警告是什么意思?

标签 ruby web-scraping httparty

这个问题可能结构不合理,所以请多多包涵,我是新手。

我正在尝试构建一个简单的网络抓取工具,但每次我运行我的代码时,我都会在终端中收到此警告。我试图点击指向 github 问题的链接,希望我能得到更清楚的解释,但我在那里也不明白。尝试谷歌搜索,但也没有。

[DEPRECATION] HTTParty will no longer override `response#nil?`.
This functionality will be removed in future versions.
Please, add explicit check `response.body.nil? || response.body.empty?`.
For more info refer to: https://github.com/jnunemaker/httparty/issues/568

我想我想知道的是,从根本上说,这个警告是什么意思?在使用 HTTPParty gem 时,我现在应该做些什么不同的事情吗?

最佳答案

这也让我很烦。您可能将来自 HTTParty.get 的响应传递给其他正在测试 nil 的代码。我将正文传递给 Nokogiri::HTML,该代码最终调用了 HTTParty.response.nil?。为了解决这个问题,我开始将“正文”而不是响应对象发送给 Nokogiri。很多人可能会遇到这种情况,因为具有这种模式的 Nokogiri 示例代码随处可见。

我现在用这个:

doc = HTTParty.get('https://some/site')
parsed ||= Nokogiri::HTML(doc.body)

在收到警告之前,它是:

doc = HTTParty.get('https://some/site')
parsed ||= Nokogiri::HTML(doc)

关于ruby - 弃用 : HTTParty will no longer override `response#nil?` . 这个弃用警告是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61590268/

相关文章:

ruby - 安装 OS X Yosemite Beta 后 watir 网络驱动程序出现问题

ruby - 如何使用 compass Sprite ?

ruby - MongoDB Ruby 驱动程序 - `synchronize' : can't be called from trap context

ruby - 哈希字符串中的子词(和短语)

python - 使用 BS4 python 进行抓取

python - 当我尝试抓取 web 数据 : module 'html5lib.treebuilders' has no attribute '_base' 时弹出以下错误

ruby-on-rails - 获取 #<Hash :0x007ff3625a4800> in rspec 的 httparty 未定义方法 `code'

ruby-on-rails - rails : How to send a http get request with UTF-8 encoding

Python Selenium 错误 : "WebDriverException: ' login' executable needs to be in PATH.“

ruby - HTTParty 请求返回 404 代码