2017-12-01 1 views
0

전 초보자이며 웹 사이트를 확인하거나 404 오류를 반환 할 수있는 루비 파일을 작성했습니다. 그것은 다음과 같습니다Ruby - 페이지 내 특정 페이지 결과에 대한 URL 확인

#!/usr/bin/env ruby 
# encoding: utf-8 

urls = %w(
https://www.nytimes.com/2017/11/30/world/americas/argeeentine-navy-gives-up-hope-of-finding-submarine-crew-alive.html 
) 

require "open-uri" 
require "nokogiri" 

missing = [] 
urls.each do |url| 
    begin 
    open(url).read.include?("Argentina") 
    rescue OpenURI::HTTPError => e 
    if e.message == "404 Not Found" 
     missing << url 
     puts "#{url} is missing!" 
    end 
    end 
end 

을 지금, 나는이 스크립트를 변경하고 (404) 메시지 만 말한다 "일반적인"웹 사이트를 제공하지 않는 웹 사이트 URL의 긴 목록을 확인하려면 "이 내용은 현재 사용할 수 없습니다 ".

따라서 질문 : "이 콘텐츠를 현재 사용할 수 없습니다."라는 메시지를 보내는 목록의 URL을 나타내는 결과를 얻으려면 위의 코드를 어떻게 변경해야합니까?

미리 도움 주셔서 감사합니다 - 또한 바보 같은 내 질문에 대한 경험 코더 수 있습니다!

감사합니다.

open(url).read.include?("this content is currently not available") 

논리로 웹 페이지를 사용하면 다른 방법/클래스로 이러한 검사를 추출 시작하실 수 있습니다, 성장 "비 해결"검출 : 톰

답변

1

여기에 빠르고 간단한 구현입니다.

+0

안녕하세요 톰로드, 답장을 보내 주셔서 감사합니다! 구현을 시도했지만 작동하지 않습니다. 경우에만 의도적으로 잘못된 URL을 입력하십시오. 어느 라인 15 때문에 아직도 구조를 확인 때문에 만기가됩니다 OpenURI :: HTTPError 나는 추측합니까? 원래 코드에서 변경 한 내용을 위에 표시했습니다 – TomTe

+0

@TomTe 배열에 값을 저장해야합니다. 아래에서'missing << url'을 사용했습니다. 예를 들어 내가 제공 한 코드는 간단한 'if'문에서 사용할 수 있습니다. –

관련 문제