0

私はRuby1.9.3を使用しており、これに基づいてGooglePlayスクレーパーを大まかに作成しようとしています。HTTPSの部分で本当に苦労しています。

基本的に、このスレッドNokogiri::HTML(open("https://play.google.com/store/#{type}/details?id=#{id}"))で説明されている理由により、(元のgemのように)Windowsでの使用は失敗しました。

そのため、同じスレッドからソリューションを実装しようとしましたが、実際にはまったく機能していません。HTTPだけでも基本的なものが欠けているに違いないので、今のところHTTPSの使用をやめています。

これが私が現在持っているコードです:

  url = URI.parse( "http://google.com/" )
  http = Net::HTTP.new( url.host, url.port )
  http.use_ssl = true if url.port == 443
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  res, data = http.get ("http://google.com/")
  puts data

この場合、何も得られません。「nil」でさえなく、出力がまったくありません。

ただし、ストレートを実行するNet::HTTP.get_print URI('http://www.google.com')と、出力が得られます。問題はありません。

どんな助けでも大歓迎です。私が探している本当の解決策は、Windowsを使用しているときにGooglePlayページをスクレイプする簡単な方法です-これはそこへの道の一歩にすぎません。それで、これを達成するためのより簡単な方法を知っているなら、私はそれについて聞いてみたいです。

4

1 に答える 1

2

あなたが得てnilいる理由dataはそれに何も割り当てられていないからです。この行は以下にのみ割り当てていresます:

res, data = http.get("http://google.com/")

http://www.google.comまた、を使用してGoogleにアクセスする必要があります。wwwそうしないと、301リダイレクトメッセージと Net::HTTPMovedPermanentlyオブジェクトだけが返されます。

于 2012-09-23T01:33:14.807 に答える