gpt4 book ai didi

ruby - HTTParty 请求返回 404 代码

转载 作者:太空宇宙 更新时间:2023-11-03 18:07:18 25 4
gpt4 key购买 nike

我正在使用带有以下代码的 HTTParty Ruby gem 发送 HTTP 请求:

require 'httparty'
require 'pry'

page = HTTParty.get('http://www.cubuffs.com/')

binding.pry

您可以验证该 URL 是否有效。使用 Pry 探索结果时,我得到以下信息:

[1] pry(main)> page
=> nil
[2] pry(main)> page.code
=> 404
[3] pry(main)> page.response
=> #<Net::HTTPNotFound 404 Not Found readbody=true>

我很确定我的代码没有任何问题,因为我可以替换其他 URL,它们会按预期工作。出于某种原因,来自该域的 URL 会返回 404 代码。知道这里出了什么问题以及如何解决吗?

最佳答案

该站点的所有者正在通过浏览器检查用户代理,并且不喜欢 HTTParty 使用的那个。您可以通过在浏览器中包含用户代理 header 来获取该页面,这是来自 Chrome 的:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36

修改你的代码如下:

require 'httparty'
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'

page = HTTParty.get('http://www.cubuffs.com/', headers: {"User-Agent": user_agent})

关于ruby - HTTParty 请求返回 404 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42180668/

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