【问题标题】:DEPRECATION: HTTParty will no longer override `response#nil?`. What does this Deprecation warning mean?弃用:HTTParty 将不再覆盖 `response#nil?`。这个弃用警告是什么意思?
【发布时间】:2020-05-04 10:38:29
【问题描述】:

这个问题的结构可能很糟糕,所以请多多包涵,我是新手。

我正在尝试构建一个简单的网络爬虫,但每次运行我的代码时,我都会在终端中收到此警告。我试图点击 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

我想我想知道的是,基本而言,这个警告是什么意思?从现在开始使用HTTParty gem 时我应该做些什么不同的事情吗?

【问题讨论】:

  • 这几乎就是弃用通知所说的内容。您在代码中的某处调用response.nil?,HTTParty 告诉您此方法将被删除。您可以致电 response.body.nil?response.body.blank?。此更改背后的详细信息可以在github.com/jnunemaker/httparty/issues/568 找到

标签: ruby web-scraping httparty


【解决方案1】:

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

我现在用这个:

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

而不是之前收到警告时:

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

【讨论】:

    【解决方案2】:
    url = "https://www.startech.com.bd/laptop-notebook/laptop"
    
      unparsed_page = HTTParty.get(url)
      parsed_page = Nokogiri::HTML(unparsed_page)
    

    我遇到了和你一样的错误

    [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
    /home/abir/.rvm/gems/ruby-2.7.2/gems/nokogiri-1.11.1-x86_64-linux/lib/nokogiri/html/document.rb:209:in `parse'
    

    所以按照 Jeremy Mullin 的说法更改了代码,现在可以正常工作了。

    url = "https://www.startech.com.bd/laptop-notebook/laptop"
    
      unparsed_page = HTTParty.get(url)
      parsed_page = Nokogiri::HTML(unparsed_page.body)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-25
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多