выгрузка с zniis.ru опять сломалась
Jun. 18th, 2017 03:25 pmДай, думаю, погляжу чего это робот тихонечко так работает. Давно от него жалоб не было.
А оказыватеся с апреля сайт принудительно отправляет вопрошающего на https. Ладно, wget с этим справился сам и даже не жаловался:
Но ровно через месяц случилась какая-то засада с сертификатом:
Увы, выгружающий скрипт писал "по быстрому", "на коленке", и обработку таких ошибок не закладывал. Поэтому с 27 мая все файлики-таблицы нулевого размера. В принципе, эта хрень никому явно и не нужна, а выгружается на всякий случай. Но вот вдруг такой случай возникнет, а у меня свежачка нет?
Добавляю
Хм, думаю, и скармливаю урл validator.w3.org, но тот сразу нос воротит:
Выходит, думаю, это не у меня какие-то косяки в технологии, а всё-таки на сайте.
Посмотрел хронологию: такая хрень появляется с 27 апреля - в самый раз как стали заворачивать на https.
«А ещё сайт ЦНИИС, называется!» ;)
PS. Парсинг придётся адаптировать.
UPD. Выяснил, почему с парсингом возникла проблема. С какого-то момента "там" решили, что слишком дофига таблиц в одном месте держать — не по феншую. Стали раскладывать по подпапкам. Названия подпапок с пробелами. Подпапки, да ещё и с пробелами в именах не были продусмотрены. :) "Адаптация" обошлась дешево — пришлось выпарсивать имена источника целиком и отдельно генерить локальное имя. Первое нужно для подкрузки недостающего, второе - для локального хранения. Так-то я их потом перекладываю в архив по подпапкам
Но по уму, конечно, надо переделывать залипуху на bash+grep+se+wget на нормальный скрипт. Например, на perl. Тем более, с libcurl руку немного набил, а остальные вещи делаются горазно гибче и проще.
А оказыватеся с апреля сайт принудительно отправляет вопрошающего на https. Ладно, wget с этим справился сам и даже не жаловался:
--2017-04-27 05:24:31-- http://www.zniis.ru/bdpn/operators/router-table/ Подключение к proxy... соединение установлено. Proxy-запрос отправлен. Ожидание ответа... 301 Moved Permanently Адрес: https://zniis.ru/bdpn/operators/router-table/ [переход] --2017-04-27 05:24:32-- https://zniis.ru/bdpn/operators/router-table/ Подключение к proxy... соединение установлено. Proxy-запрос отправлен. Ожидание ответа... 200 OK Длина: нет данных [text/html] Сохранение в: «router-table» 0K .......... .......... .......... .......... .......... 47,0K 50K .......... .......... .......... .......... .......... 61,8K 100K .......... .......... ... 123K=2,1s 2017-04-27 05:24:35 (59,7 KB/s) - «router-table» сохранён [126072]
Но ровно через месяц случилась какая-то засада с сертификатом:
--2017-05-27 05:24:29-- http://www.zniis.ru/bdpn/operators/router-table/ Подключение к proxy... соединение установлено. Proxy-запрос отправлен. Ожидание ответа... 301 Moved Permanently Адрес: https://zniis.ru/bdpn/operators/router-table/ [переход] --2017-05-27 05:24:30-- https://zniis.ru/bdpn/operators/router-table/ Подключение к proxy... соединение установлено. ОШИБКА: невозможно проверить сертификат zniis.ru, выпущенный «/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA»: Невозможно локально проверить подлинность запрашивающего. Для небезопасного подключения к zniis.ru используйте параметр «--no-check-certificate».
Увы, выгружающий скрипт писал "по быстрому", "на коленке", и обработку таких ошибок не закладывал. Поэтому с 27 мая все файлики-таблицы нулевого размера. В принципе, эта хрень никому явно и не нужна, а выгружается на всякий случай. Но вот вдруг такой случай возникнет, а у меня свежачка нет?
Добавляю
--no-check-certificate
, запускаю, но тут уже и "парсер" начинает кашлять и плеваться. Ну, думаю, ещё и внутри чего-то изменили. Начинаю разглядывать выгруженную страницу, а там хвоста нет. Заканчивается страница открытым div-ом, как будто что-то на сайте молчаливо сломалось.Хм, думаю, и скармливаю урл validator.w3.org, но тот сразу нос воротит:
500 Can't connect to zniis.ru:443 (certificate verify failed)
Выходит, думаю, это не у меня какие-то косяки в технологии, а всё-таки на сайте.
Посмотрел хронологию: такая хрень появляется с 27 апреля - в самый раз как стали заворачивать на https.
«А ещё сайт ЦНИИС, называется!» ;)
PS. Парсинг придётся адаптировать.
UPD. Выяснил, почему с парсингом возникла проблема. С какого-то момента "там" решили, что слишком дофига таблиц в одном месте держать — не по феншую. Стали раскладывать по подпапкам. Названия подпапок с пробелами. Подпапки, да ещё и с пробелами в именах не были продусмотрены. :) "Адаптация" обошлась дешево — пришлось выпарсивать имена источника целиком и отдельно генерить локальное имя. Первое нужно для подкрузки недостающего, второе - для локального хранения. Так-то я их потом перекладываю в архив по подпапкам
Архив/YYYY
, а из-за того что у zniis старьё не удаляется, можно было либо скипать старое, либо проверять наличие и в архиве. Скрипт сделал лояльным и гибким — его устроит наличие файла где бы он не лежал.Но по уму, конечно, надо переделывать залипуху на bash+grep+se+wget на нормальный скрипт. Например, на perl. Тем более, с libcurl руку немного набил, а остальные вещи делаются горазно гибче и проще.