1

重複の可能性:
ruby​​ での単純な解析

ウェブサイトでタイトルを確認しようとしていますが、試行錯誤の末、nokogiri と rest-client を使用して Ruby でこれを実行できることがわかりました。

 require 'nokogiri'
 require 'rest-client'

 page = Nokogiri::HTML(RestClient.get("http:/#{user.username}.domain.com/"))   
 simian = page.at_css("title").text 
     if simian == "Welcome to"
       puts "default monkey" 
   else 
   puts "website updated"       
    end

残念ながら、多数の Web サイトでは、/admin/users/list 500 Internal Server Error で RestClient::InternalServerError が返されるため、これは常に機能するとは限りません。

mycurl = %x(curl http://....... .) を使用するだけで同じことを達成するオプションがあるかどうか疑問に思っていました。タイトルを解析し、使用せずにそれを使用する効率的な方法は何でしょうか任意の宝石または curl オプションを nokogiri で直接使用できますか? ありがとう

4

2 に答える 2

4

あなたの質問を読んだ後、あなたがこれらの2つのgemに設定されているかどうか確信が持てなかったので、より簡単な別の方法があります.

require 'open-uri'

url="http://google.com"
source = open(url).read
source[/<title>(.*)<\/title>, 1]
于 2012-09-07T19:35:52.573 に答える
1

これには 2 つの部分があります。1 つはページのフェッチで、もう 1 つは解析です。取得の場合、標準ライブラリから取得する場合は、 rest-clientgemは実際には必要ありません。open-uriNokogiri が解析を行いますが、それはおそらくあなたの問題ではありません。これを試して:

require 'open-uri'
require 'nokogiri'

page = Nokogiri::HTML(open('http://example.com/'))
puts page.at('title').text
于 2012-09-07T20:47:02.897 に答える