我想使用ruby檢查鏈接是否死亡。 你能告訴我一個工具在ruby
檢查鏈接在紅寶石死亡? 我可以使用selenium
或nokogiri
? 感謝您的幫助!工具檢查鏈接在ruby中死亡
回答
應該足以使請求與Net::HTTP
,並檢查狀態代碼是404
例如:
require 'net/http'
uri = URI('link_to_check')
response = Net::HTTP.get_response(uri)
if response.code == '404'
# do something
end
只需添加一個例子.. +1 –
非常感謝...! –
下面是我使用的東西。它執行HEAD而不是GET請求,並且會正確地遵循重定向。它還使用通用的Net::HTTPSuccess
來檢查請求是否成功。
require 'net/http'
def alive?(link, limit=10)
return false if limit <= 0
link = "http://#{link}" unless link =~ %r{^https?://}i
uri = URI.parse(link)
http = Net::HTTP.new(uri.host, uri.port)
req = Net::HTTP::Head.new(uri.request_uri)
res = http.request(req)
case res
when Net::HTTPSuccess then true
when Net::HTTPRedirection then alive?(res['location'], limit-1)
else false
end
rescue SocketError
false # unknown hostname
end
你知道任何一本書來學習這個''lib'或者你只使用文檔嗎? –
@ArupRakshit我剛剛閱讀文檔,博客文章,如[這一個](http://www.rubyinside.com/nethttp-cheat-sheet-2940.html),如果有疑問,我看看源代碼。 Pry使用'show-source'和'show-doc'命令可以輕鬆實現。 –
好的。感謝您的回覆。 –
- 1. 檢查Atmega32是否死亡
- 2. 良好的鏈接檢查工具?
- 3. 如何使用PHP以編程方式檢查有效(而非死亡)鏈接?
- 4. 查詢死亡,但沒有工作
- 5. 如何檢測線程中的Ruby線程何時死亡
- 6. 死鏈接檢查的最佳做法
- 7. 死亡
- 8. 操作數據時Ruby線程死亡
- 9. Ruby線程重定向後死亡
- 10. mysqli或死亡,是否必須死亡?
- 11. 會話在CodeIgniter中死亡
- 12. `npm install`在中國死亡
- 13. 「或死亡()」在Python
- 14. Rails Resque工人正在死亡
- 15. ActiveRecord連接隨機Ruby方法死亡(.size,.each)
- 16. 死亡測試中奇怪的堆檢查器錯誤
- 17. 致人死亡
- 18. Disqus + ajax +死亡...
- 19. mediaplayer死亡android
- 20. 當MySQL死亡
- 21. Python,死亡?
- 22. udp_listener死亡
- 23. 生命之死 - 死亡
- 24. Erlang:進程保持鏈接到死亡線程
- 25. 活動在<= Android 4.1中正常工作,但在Android 4.2中死亡(ActivityManager:進程已經死亡)
- 26. 檢查下載鏈接是否死在PHP?
- 27. 頻道死亡在去
- 28. 在python線程死亡時?
- 29. SparkViewEngine是否正在死亡?
- 30. Django遷移正在死亡
看到這個例子 - http://ruby-doc.org/stdlib-2.1.0/libdoc/net/http/rdoc/Net/HTTP.html#class-Net::HTTP-label-Response + Data和http://ruby-doc.org/stdlib-2.1.0/libdoc/net/http/rdoc/Net/HTTP.html#class-Net::HTTP-label-HTTP+Response+Classes –