簡體   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