繁体   English   中英

Ruby Net:Http get请求给出的响应与浏览器不同

[英]Ruby Net:Http get request gives different response than with Browser

我正在尝试使用Net::HTTP从API服务器获取。

puts "#{uri}".green
response = Net::HTTP.new('glassdoor.com').start { |http|
  # always proxy via your.proxy.addr:8080
  response =  http.get(uri,  {'Accept' => 'application/json'})
  puts "Res val: #{response.body}".blue
}

我从控制台获取了uri并将其粘贴到浏览器中,并且收到了JSON响应。

但是使用Ruby Net::HTTP get会收到一些安全消息:

在此处输入图片说明

为什么会有所不同? 浏览器和Ruby脚本位于同一公共IP的后面。

顺便说一句,您被检测为爬虫。 请注意,这些请求(来自浏览器和脚本的请求)并不相同。 浏览器发送一些标头,例如接受的语言,用户代理等。您可以使用浏览器中的Web检查器工具来窥视它。 另一方面,在脚本中,您仅设置了Accept标头(对于JSON,它本身就是可疑的,因为浏览器永远不会这样做)。 并且您不发送任何用户代理。 不难看出,这是一个自动请求,而不是来自浏览器的自然流量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM