Что нового

Берем информацию с каждой ссылки и записываем в файл

alex-evpa

Новичок
Сообщения
7
Репутация
0
Добрый день Всем. Есть сайт https://gazeta.vitrina82.com/. Через Интернет Эксплорер я заходил авторизировался. Потом запускал скрипт, он берет информацию с каждой ссылки , заданных в массиве, и записывает ее в файл убирая все лишнее. До недавних времен все работало. Сейчас выдает ошибку
Ошибка чтения страницы http://gazeta.vitrina82.com/kuplyu_list_4QH0O6EFC.
Вот код:

Код:
#include <Array.au3>
#include <INet.au3>

Dim $aUrls[4][3] = [["http://gazeta.vitrina82.com/kuplyu_list_4QH0O6EFC", "<h1>Объявления: </h1>", "<div align="], _   ;КОМНАТЫ, КВАРТИРЫ..... , - г. ЕВПАТОРИЯ - Комнаты - КУПЛЮ
                     ["http://gazeta.vitrina82.com/prodazha_list_4PW0UJMOV", "<h1>Объявления: </h1>", "<div align="], _               ;Гаражи..... , - г. ЕВПАТОРИЯ - Продажа
                     ["http://gazeta.vitrina82.com/snimu_list_4QH0YPU83", "<h1>Объявления: </h1>", "<div align="], _                  ;Гаражи..... , - г. ЕВПАТОРИЯ - Аренда - Сниму
                     ["http://gazeta.vitrina82.com/sdam_list_4QH0YQ189", "<h1>Объявления: </h1>", "<div align="] _                    ;Гаражи..... , - г. ЕВПАТОРИЯ - Аренда - Сдам
                  ]

 $sFileName = '1.Евпатория.txt' ;

For $iNum = 0 To UBound($aUrls) -1
   Local $sHTML = BinaryToString(InetRead($aUrls[$iNum][0], 8), 4)           ; Читаем в переменную исходник страницы
   If @error Then Exit MsgBox(4096, "", "Ошибка чтения страницы " & $aUrls[$iNum][0])
   Local $aList = StringRegExp($sHTML, '(?s)' & $aUrls[$iNum][1] & '(.+?)' & $aUrls[$iNum][2], 3) ; Массив объявлений
   ;$sFileName = $iNum & '.txt' ;  писать все  В РАЗНЫЕ файлы

   ConsoleWrite('Загрузили страницу #' & $iNum + 1 & @CRLF)

   For $sAnek In $aList
     ; $sAnek = StringReplace($sAnek, "&mdash;", '—')
     ; $sAnek = StringReplace($sAnek, "&nbsp;", ' ')
      $sAnek = StringReplace($sAnek, "&nbsp;&gt;&nbsp;",' ' )
      $sAnek = StringReplace($sAnek, "Объявления:",@CRLF )
      $sAnek = StringReplace($sAnek, "По указанным критериям объявлений не найдено!",'' )
      $sAnek = StringReplace($sAnek, "Главная",'—')
      $sAnek = StringReplace($sAnek, "НЕДВИЖИМОСТЬ",'—')
      $sAnek = StringReplace($sAnek, "</table>", @CRLF)
      $sAnek = StringReplace($sAnek, "&#38;#38;#38;#38;#38;#39;&#38;#38;#38;#38;#38;#39;", '"')
      $sAnek = StringRegExpReplace($sAnek, "(?s)(<.+?>)", "")               ; Несколько замен в коде страницы
      FileWrite($sFileName, $sAnek & @CRLF & '------------------' & @CRLF)  ; Записываем в указанный файл
   Next

   ConsoleWrite('Записано: ' & UBound($aList) & @CRLF)
Next





 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
как вариант, из-за недействующего сертификата безопасности.
 
Автор
A

alex-evpa

Новичок
Сообщения
7
Репутация
0
Да да, как раз когда просто заходишь по ссылке, появляется сообщение о сертификате. Как это исправить?)
 

hedji

Продвинутый
Сообщения
409
Репутация
94
1) Игнорировать ошибку сертификата

2 = игнорировать все SSL ошибки (при использовании соединения HTTPS).
Код:
Local $sHTML = BinaryToString(InetRead($aUrls[$iNum][0], 10), 4)


2) Написать админам gazeta.vitrina82.com, что они криворукие обезьяны пропустили срок обновления сертификата. :biggrin:
 
Автор
A

alex-evpa

Новичок
Сообщения
7
Репутация
0
Не знаю правильно ли я делаю,, думал обойти таким образом,, изменил дату на компе , что б попасть в период действия сертификата) при заходе через эксплорер ошибка сертификата не появляется, но скрипт все равно выдает ошибку) может влияет какой браузер по умолчанию выбран или как вообще скрипт считывает инфу с сайта?)
Сообщение автоматически объединено:

1) Игнорировать ошибку сертификата

2 = игнорировать все SSL ошибки (при использовании соединения HTTPS).
Код:
Local $sHTML = BinaryToString(InetRead($aUrls[$iNum][0], 10), 4)


2) Написать админам gazeta.vitrina82.com, что они криворукие обезьяны пропустили срок обновления сертификата. :biggrin:

я прост в коде не очень, так как дописать код , что б игнорировал ошибку ?)
Сообщение автоматически объединено:

Код:
Local $sHTML = BinaryToString(InetRead($aUrls[$iNum][0], 2), 4)

Изменил на это, не помогло
 
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
это и не поможет. пробовать через WinHttp
 
Верх