Ruby——net/http使用代理

本文知識點

  • Ruby環境搭建
  • Ruby標準庫使用代理
  • Ruby進階學習

環境配置:

確認環境。

ruby -v

在這裏插入圖片描述

環境搭建好之後,直接引入內置模塊使用即可。

代碼樣例

使用代理

# -*- coding: utf-8 -*-

require 'net/http'  # 引入內置net/http模塊
require 'zlib'
require 'stringio'

# 代理服務器ip和端口,由快代理提供
proxy_ip = '47.115.5.19'
proxy_port = 16816

# 要訪問的目標網頁, 以快代理testproxy頁面爲例
page_url = "https://dev.kuaidaili.com/testproxy"
uri = URI(page_url)

# 新建代理實例
proxy = Net::HTTP::Proxy(proxy_ip, proxy_port)

# 創建新的請求對象 
req = Net::HTTP::Get.new(uri)

# 設置User-Agent
req['User-Agent'] = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
req['Accept-Encoding'] = 'gzip'  # 使用gzip壓縮傳輸數據讓訪問更快

# 使用代理髮起請求, 若訪問的是http網頁, 請將use_ssl設爲false
res = proxy.start(uri.hostname, uri.port, :use_ssl => true) do |http|
    http.request(req)
end

# 輸出狀態碼
puts "status code: #{res.code}"

# 輸出響應體
if  res.code.to_i != 200 then
    puts "page content: #{res.body}"
else
    gz = Zlib::GzipReader.new(StringIO.new(res.body.to_s))
    puts "page content: #{gz.read}" 
end

運行下試試,看看結果。成功,code200,
在這裏插入圖片描述

進階學習:

發佈了16 篇原創文章 · 獲贊 21 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章