Отсутствует исходный код на веб-странице с использованием UrlFetchApp.fetch (). GetContentText

Не все источники просмотра: http://www.portofhueneme.org/home.php с сайта взято от UrlFetchApp.fetch().getContentText.

Я слышал, что UrlFetchApp - это просто оболочка для модуля urllib2 Python. В предыдущем сообщении упоминалось, что 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) ;

}


person user1469051    schedule 21.04.2013    source источник


Ответы (1)


Нет связи между UrlFetchApp и urllib2. (Возможно, вы слышали об эквивалентном API UrlFetch в App Engine, хотя я понятия не имею; но это определенно неверно для скриптов приложений.) Однако в целом ни одна из библиотек, подобных UrlFetchApp на любом языке или платформе, не будет выполнять скрипты на странице (даже собственный JavaScript XmlHttpRequest этого не делает!), поэтому наблюдение по-прежнему актуально.

В этом случае ваша проблема заключается в том, что текст не содержит /Current Vessel Schedule/, потому что, если вы посмотрите на источник этой страницы, вы увидите, что между словами есть не только один пробел, но и много пробелов, включая новую строку. Вы не видите этого на видимой странице, но это есть в HTML-коде, который у вас есть в UrlFetchApp.

Чтобы это работало, вам нужно вместо этого изменить ваш скрипт на /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) ;
}
person Corey G    schedule 21.04.2013