У меня скрипт перебирает список ссылок из текстового файла, открывает каждую в эксплорере, считывает нужную информацию и записывает в выводной файл.
За открытие нужной страницы в эксплорере отвечает вот эта функция:
К сожалению, через каждые 1000-3000 ссылок возникает ошибка номер 4 (Invalid Object Type), в основном у _IENavigate, но иногда и у _IELoadWait. Я пытался ее победить путем создания новой копии IE, но не очень это помогает - после создания 3-4 копий эксплорер перестает вообще загружать ссылки. Вот кусочек сгенеренного функцией лога:
Пример списка ссылок:
Между открытиями страниц в скрипте задана пауза в 2 сек, перед открытием новой копии IE пауза на 60 сек.
Ошибка не привязана к работе с конкретным сайтом, при обработке других сайтов все тоже самое. У меня складывается впечатление, что ошибка как-то связана с какими-нибудь проблемами интернет-соединения, потому что на ноутах, работающих по вай-фаю ошибка появляется быстрее.
Может, кто-нибудь что-нибудь подскажет на эту тему? Не смог ничего внятного найти ни на этом форуме, ни на английском.
Спасибо.
За открытие нужной страницы в эксплорере отвечает вот эта функция:
Код:
Func MyIENavigate($aI, $ssyl)
While 1
_IENavigate($aI, $ssyl, 0)
If @error = 1 Or @error = 3 Or @error = 4 Or @error = 8 Then
; 1 - General Error
; 3 - Invalid Data Type
; 4 - Invalid Object Type
; 8 - Access Is Denied
ErrorLogWrite("Ошибка _IENavigate (" & @error & ") открытия страницы " & $ssyl)
Sleep(60000)
$aI = _IECreate()
Sleep(5000)
ContinueLoop
ElseIf @error = 6 Or @error = 9 Then
; 6 - Load Wait Timeout
; 9 - Client Disconnected
ContinueLoop
EndIf
; Раз пришли сюда - ошибки не было
; То есть надо только подождать
_IELoadWait($aI, 1000, 10000)
If @Error = 0 Then ExitLoop
If @error = 1 Or @error = 3 Or @error = 4 Or @error = 8 Then
; 1 - General Error
; 3 - Invalid Data Type
; 4 - Invalid Object Type
; 8 - Access Is Denied
ErrorLogWrite("Ошибка _IELoadWait (" & @error & ") открытия страницы " & $ssyl)
Sleep(60000)
$aI = _IECreate()
Sleep(5000)
ContinueLoop
Else
; 6 - Load Wait Timeout
; 9 - Client Disconnected
ContinueLoop
EndIf
WEnd
Return $aI
EndFunc
К сожалению, через каждые 1000-3000 ссылок возникает ошибка номер 4 (Invalid Object Type), в основном у _IENavigate, но иногда и у _IELoadWait. Я пытался ее победить путем создания новой копии IE, но не очень это помогает - после создания 3-4 копий эксплорер перестает вообще загружать ссылки. Вот кусочек сгенеренного функцией лога:
Код:
=== Start Program: 09.11.2011 15:18:12
09.11.2011 17:11:04 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0098067-photo
09.11.2011 17:12:16 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0098068-photo
09.11.2011 17:14:37 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0098069-photo
09.11.2011 17:16:12 Ошибка _IENavigate (3) открытия страницы http://www.inmagine.com/ishop_single/bw0098069-photo
09.11.2011 17:17:25 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0098070-photo
09.11.2011 17:50:11 Ошибка _IELoadWait (4) открытия страницы http://www.inmagine.com/ishop_single/bw0146068-photo
09.11.2011 17:51:24 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0146069-photo
09.11.2011 17:52:59 Ошибка _IENavigate (3) открытия страницы http://www.inmagine.com/ishop_single/bw0146069-photo
09.11.2011 18:13:45 Ошибка _IELoadWait (4) открытия страницы http://www.inmagine.com/ishop_single/bw0146070-photo
09.11.2011 18:18:09 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0146071-photo
09.11.2011 18:19:22 Ошибка _IENavigate (4) открытия страницы http://www.inmagine.com/ishop_single/bw0146072-photo
Пример списка ссылок:
http://www.inmagine.com/pdrb164/pdrb164001-photo
http://www.inmagine.com/pdrb164/pdrb164002-photo
http://www.inmagine.com/pdrb164/pdrb164003-photo
http://www.inmagine.com/pdrb164/pdrb164004-photo
http://www.inmagine.com/pdrb164/pdrb164002-photo
http://www.inmagine.com/pdrb164/pdrb164003-photo
http://www.inmagine.com/pdrb164/pdrb164004-photo
Между открытиями страниц в скрипте задана пауза в 2 сек, перед открытием новой копии IE пауза на 60 сек.
Ошибка не привязана к работе с конкретным сайтом, при обработке других сайтов все тоже самое. У меня складывается впечатление, что ошибка как-то связана с какими-нибудь проблемами интернет-соединения, потому что на ноутах, работающих по вай-фаю ошибка появляется быстрее.
Может, кто-нибудь что-нибудь подскажет на эту тему? Не смог ничего внятного найти ни на этом форуме, ни на английском.
Спасибо.