Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 弃用:HTTParty将不再覆盖'response#nil?'。这个弃用警告是什么意思?_Ruby_Web Scraping_Httparty - Fatal编程技术网

Ruby 弃用:HTTParty将不再覆盖'response#nil?'。这个弃用警告是什么意思?

Ruby 弃用:HTTParty将不再覆盖'response#nil?'。这个弃用警告是什么意思?,ruby,web-scraping,httparty,Ruby,Web Scraping,Httparty,这个问题可能结构不好,所以请耐心听我说,我对这方面还不熟悉 我试图建立一个简单的网页刮板,但每次我运行我的代码,我得到这个终端警告。我曾试图跟踪github问题的链接,希望能得到更清楚的解释,但我也不明白。尝试过谷歌搜索,但也没有 [DEPRECATION] HTTParty will no longer override `response#nil?`. This functionality will be removed in future versions. Please, add exp

这个问题可能结构不好,所以请耐心听我说,我对这方面还不熟悉

我试图建立一个简单的网页刮板,但每次我运行我的代码,我得到这个终端警告。我曾试图跟踪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时,我是否应该做些不同的事情?

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

我现在用这个:

doc = HTTParty.get('https://some/site')
parsed ||= Nokogiri::HTML(doc.body)
而不是在收到警告之前,它是:

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

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

我现在用这个:

doc = HTTParty.get('https://some/site')
parsed ||= Nokogiri::HTML(doc.body)
而不是在收到警告之前,它是:

doc = HTTParty.get('https://some/site')
parsed ||= Nokogiri::HTML(doc)
我面临着和你一样的错误

[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'
因此,正如杰里米·穆林所说的那样修改了代码,现在它运行良好

url = "https://www.startech.com.bd/laptop-notebook/laptop"

  unparsed_page = HTTParty.get(url)
  parsed_page = Nokogiri::HTML(unparsed_page.body)
我面临着和你一样的错误

[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'
因此,正如杰里米·穆林所说的那样修改了代码,现在它运行良好

url = "https://www.startech.com.bd/laptop-notebook/laptop"

  unparsed_page = HTTParty.get(url)
  parsed_page = Nokogiri::HTML(unparsed_page.body)

这和弃用通知上说的差不多。您正在调用代码中的某个地方的
response.nil?
,HTTParty告诉您此方法将被删除。您可以调用
response.body.nil?
response.body.blank?
。这一变化背后的细节可以在网站上找到,与弃用通知中所说的差不多。您正在调用代码中的某个地方的
response.nil?
,HTTParty告诉您此方法将被删除。您可以调用
response.body.nil?
response.body.blank?
。有关此更改背后的详细信息,请访问