![](/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.