~/blog/proxy-server-with-basic-authentication-open-uri-ruby
Published on

Ruby open-uriでBASIC認証ありのプロキシサーバーを経由

892文字2分で読めます–––
閲覧数
Authors
  • avatar
    Name
    Shou Arisaka nyapp.buzz/shou
    short bio
    Z世代の情報技術者。Next.jsで自作SNSを個人開発中。

Ruby言語のopen-uriライブラリでBASIC認証ありのプロキシサーバーを経由する場合の方法についてメモです。

プロキシ経由でサイトにアクセスしてnokogiriを使用しIPアドレスをスクレイピングして確認する例


require 'nokogiri'
require 'open-uri'

Encoding.default_external = 'UTF-8'

url = "http://localhost:3000/ip/show.json"
url = "https://whatismyipaddress.com"
url = "https://www.cman.jp/network/support/go_access.cgi" #= > chnfirm IP addr

charset = nil
# html = open(url) do |f|
html = open(url, :proxy_http_basic_authentication => ['http://IP:ポート', 'USER', 'PASS']) do |f|
# html = open(url, :proxy=>'http://198.27.115.42:3128') do |f|
# html = open(url, :proxy=>'http://38.29.152.9:53281') do |f| # => https://free-proxy-list.net
  charset = f.charset
  f.read
end
doc = Nokogiri::HTML.parse(html, nil, charset)

# require 'pry-byebug'
# binding.pry

puts doc.title

puts doc.xpath('//*[@id="section_left"]/div[3]/table/tbody/tr[1]/td').text
puts doc.xpath('//*[@id="tmContHeadStr"]/div/div[1]/div[3]/div[1]').text

# => アクセス情報【使用中のIPアドレス確認】
# =>
# =>
# => 111.111.142.140
avatar

Shou Arisaka

情報技術者 / Z世代プログラマー / SaaSアプリやSNSを開発
今すぐ話そう!

15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。

Created with Fabric.js 5.2.4 何かご質問がありますか?