Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2015, 13:37   #1
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию Ошибка при обращении к HTML-странице

Добрый день, уважаемые форумчане.

На форуме есть замечательный код для обращения к HTML-странице
Код:
            sURI = Cells(m, 17).Value & "pledged=" & p & "&goal=" & g & "&raised=" & r & "&page=" & j
            With CreateObject("MSXML2.XMLHTTP")
                .Open "GET", sURI, False
                .Send
                htmlcode = .ResponseText
            End With
Но, к сожалению, не для всех значений p, g, r и j существуют HTML-страницы и код застревает на шаге .send и либо выдает "неизвестная ошибка" либо "превышено время ожидания"

Подскажите, пожалуйста, может быть можно что-нибудь сделать, чтобы код игнорировал несуществующие страницы.

Спасибо.
mephist вне форума Ответить с цитированием
Старый 15.06.2015, 15:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А что лежит в Cells(m, 17).Value?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 15:37   #3
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

там ссылки на страницы
одна из которых,например,
https://www.kickstarter.com/discover...3d%20printing?
mephist вне форума Ответить с цитированием
Старый 15.06.2015, 16:28   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хм... Правильно.
Те ссылки, которые падают с ошибками - в браузере открываются?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 17:23   #5
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Часть
Код:
& "pledged=" & p & "&goal=" & g & "&raised=" & r & "&page=" & j
по идее отвечает за фильтр: на странице отображаются проекты удовлетворяющие условиям pledged, goal, raised

Когда таковых нет - выдается соответствующее сообщение:
"Oops! Looks like we couldn’t find any results. Why not change some things around or broaden your search?"

Все страницы, которые выдают ошибки открываются именно так, но не все страницы, которые так открываются стопарят макрос (очень часто он спокойно отрабатывает дальше).
mephist вне форума Ответить с цитированием
Старый 15.06.2015, 17:38   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Сложно что-то сказать толкового...
Единственный момент - не вижу чтоб созданный MSXML2.XMLHTTP освобождался, но это врядли дает такие ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 17:46   #7
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

А может быть он перезаполняется? По сути макрос работает: отрабатывает сотни повторений, адекватно пропускает пустые страницы, но на каком-то шаге бац и перестает. Подскажите, пожалуйста, как очистить MSXML2.XMLHTTP и/или сделать указание, чтобы макрос работал не обращая внимания на ошибки?
mephist вне форума Ответить с цитированием
Старый 15.06.2015, 17:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Скорее всего сам портал думает что ты бот, и режет твои попытки слямзить сайт.
Цитата:
и/или сделать указание, чтобы макрос работал не обращая внимания на ошибки?
Ну для этого наверное нужно описывать On error goto... Я не силен в Бейсике, если честно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2015, 18:08   #9
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Спасибо, попробую On error goto
mephist вне форума Ответить с цитированием
Старый 16.06.2015, 11:31   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
код застревает на шаге .send
надо использовать таймаут, - чуть другой код получится
http://excelvba.ru/code/GetHTTPResponse
(в конце статьи есть примеры с указанием таймаута)
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при обращении к FIBDataSet'y Vit@L БД в Delphi 10 02.08.2012 21:14
Ошибка при обращении к объекту CodeNOT C# (си шарп) 3 28.05.2011 12:47
Ошибка при обращении к реестру OLE. В чем причина? ILYA_SAKHA БД в Delphi 3 09.06.2010 04:02
при обращении с одной формы на другую вылетатет ошибка cowboy Общие вопросы Delphi 21 04.09.2009 14:25
Ошибка при обращении к интернет странице Alter Свободное общение 2 06.08.2008 22:25