这个问题可能结构不合理,所以请多多包涵,我是新手。
我正在尝试构建一个简单的网络抓取工具,但每次我运行我的代码时,我都会在终端中收到此警告。我试图点击指向 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/