![](/img/trans.png)
[英]Why do Ruby Net::HTTP.get_response and Net::HTTP.new(uri.host).request return different things?
[英]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.