前提・実現したいこと
簡単な価格調査のスクレイピングをしています。
Yodobashiのサイトからホームページの情報が読み取れなく困っています。
(以前は普通にできていたと思うのですが)
何が悪いのかわからないので、超簡単なプログラムを作成してみたところ
やはりYodobashiだけ反応が無いので、原因など分かれば教えていただきたい。
ちなみに、Amazonや楽天では普通に表示できます。
実行環境
Windows10 ,VirtualBox ,Vagran ,Centos6.5
Rubyでやってます。
該当のソースコード
Ruby
1require 'open-uri' 2 3ua = "Mozilla/5.0" 4io = open('https://www.yodobashi.com','User-Agent' => ua) 5 6puts io.read
現状の症状
プログラムを実行するとず~っとどこかのループに入っているのか、ダンマリ状態(T_T)
試したこと
User-Agentを足してみたり、あとRefereを入れてみたりしましたが変わらず。
他の言語ならいけるの??
もともとRubyでシステムを組んでいた為にRubyで確認していますが、
他の言語、Pythonとかなら普通にいけるのか?
もしかして他のライブラリ使うといけるとかの情報でもOKなので、情報あったらうれしい。
追記
net/http で行けるんじゃね?という件が出たのでWebにあった適当なコードを拝借してやってみましたが、どうやら同じくレスポンスがなくダメっぽいです。
どこか致命的におかしなところあったら教えて下さい。
ruby
1 # 必要な機能の呼び出し 2 require 'net/http' 3 require 'uri' 4 5 # 対象のURLの指定 6 uri = URI.parse("https://www.yodobashi.com/") 7 # GETオブジェクトの作成 8 request = Net::HTTP::Get.new(uri) 9 # リクエスト情報の追加 10 request["Connection"] = "keep-alive" 11 request["Upgrade-Insecure-Requests"] = "1" 12 request["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36" 13 request["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" 14 request["Referer"] = "https://www.yodobashi.com/" 15 request["Accept-Language"] = "ja,en-US;q=0.9,en;q=0.8" 16 request["Cookie"] = "" 17 18 req_options = { 19 use_ssl: uri.scheme == "https", 20 } 21 22 # リクエストを送る 23 response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http| 24 http.request(request) 25 end 26 27 # 画面出力 28 p response.body 29 30 # 適当なファイルへ挿入 31 File.open("./net_http.html", "w") do |f| 32 f.write(response.body) 33 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/19 03:11
2020/03/19 07:49
2020/03/19 09:44
2020/03/19 11:53