Jun. 18th, 2017

crower: (Default)
Дай, думаю, погляжу чего это робот тихонечко так работает. Давно от него жалоб не было.
А оказыватеся с апреля сайт принудительно отправляет вопрошающего на 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 руку немного набил, а остальные вещи делаются горазно гибче и проще.

Profile

crower: (Default)
crower

September 2017

S M T W T F S
     12
3456789
10111213141516
17 181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 05:08 am
Powered by Dreamwidth Studios