2013-04-21 2 views
0

사이트의 모든보기 소스 : http://www.portofhueneme.org/home.phpUrlFetchApp.fetch().getContentText에서 검색되지 않습니다.UrlFetchApp.fetch(). getContentText를 사용하여 웹 페이지의 소스 코드가 누락되었습니다.

UrlFetchApp은 파이썬의 urllib2 모듈에 대한 래퍼라고 들었습니다. previous post에서는 urllib2가 스크립트에서 동적으로 생성 된 컨텍스트를 가져 오지 않지만 페이지의 나머지 부분을 생성하는 스크립트를 찾을 수 없다고 언급했습니다.

'중요한 공지 사항'에 날짜를 표시하려고합니다.

function test_date() { 
    var url = UrlFetchApp.fetch('http://www.portofhueneme.org/home.php') ; 
    var text= hueneme_url.getContentText() ; 
    Logger.log(hueneme_text) ; 

    var pattern = /Current Vessel Schedule/ 

    var start = hueneme_text.search(pattern) ; 
    Logger.log("\n"+start) ; 

}

답변

0

UrlFetchApp을하고 urllib2가 사이에 연결이 없습니다. (아마 알 수는 없지만 App Engine의 동등한 UrlFetch API에 대해 들었던 것은 사실이지만 Apps Script에는 사실이 아닙니다.) 그러나 일반적으로 모든 언어 또는 플랫폼의 UrlFetchApp과 같은 라이브러리는 스크립트를 실행하지 않습니다 페이지에서 (JavaScript 자체의 XmlHttpRequest도 그렇게하지 않습니다!) 따라서 관찰은 여전히 ​​관련이 있습니다.

이 경우 텍스트에 /Current Vessel Schedule/이 포함되지 않는다는 것입니다. 왜냐하면 해당 페이지의 소스를 보면 단어 사이에 공백이 하나 있지만 개행을 포함하여 많은 공백이 있음을 알 수 있기 때문입니다 . 표시되는 페이지에는 표시되지 않지만 UrlFetchApp에서 가져온 코드는 HTML 코드에 있습니다.

이 작업을 수행하려면 스크립트를 /Current\s*Vessel\s*Schedule/으로 변경해야합니다. 전체 예는 다음과 같습니다.

function test_date() { 
    var url = UrlFetchApp.fetch('http://www.portofhueneme.org/home.php') ; 
    var text = url.getContentText() ; 
    var pattern = /Current \s*Vessel\s*Schedule/ 
    var start = text.search(pattern) ; 
    Logger.log(start) ; 
}