Блог им. afecn19

Автоматический скачиватель с некого сайта который мы не будем называть

Есть такой известный сайт, с которого наверно все начинающие и не очень трейдеры скачивали котировки для анализа. Сама российская биржа предоставляет возможность скачивать прямо оттуда, но там ограничения, только тики, минутки, 10 минутки, часовики и дальше. А что если мне нужны 5 минутки? А еще есть проблема скачать внутридневные котировки до ноября 2011 года. Те реализации которые я нашел по крайней мере работают только после. Я даже написал одному разработчику, мол так и так, на что получил ответ что рынок изменился в последние годы и в общем зачем тебе вся эта древность, качай с 2012 года и будь счастлив. Только вот мои нейросетки и прочие инструменты показывают, что лучший результат достигается если прогнозировать современность, в том числе на основе данных и за 2006 и 2007 и даже о боже 2008 и 2009 годы. И вот сайт, который мы не называем, такую возможность представляет. Другое дело, что замучаешься скачивать данные, ведь надо провтыкивать кучу кнопок и набивать кучу значений. Допустим нужны минутки по 30 фишкам, за 2006-20020 годы. Минутки там скачиваются за раз максимум за год. Дата набиваетя в 2 окошках. То есть это надо 30*14*2 установить дату и 30 раз набить фишку. Морока. Я так не смог смотивироваться чтобы сделать это  
Как парсер уровня джуниор (буквально 3 дня), написал выкачивалку на основе пайтоновского SeleniumBrowser. Прелесть для меня в том что можно наблюдать как железный болван сам провтыкивает данные и жмет за вас нужные кнопки. Как грится в этой жизни можно бесконечно смотреть на три вещи. И вот я смотрю как железный болван работает за меня.  Да, все очень наивно и по колхозному, никаких requests, scrapy. Но цель достигнута, скачал я свои минутки по 30 фишкам, за указанные период, что ручками сделать я так и не дошел за многие лета. 
Вот код, если вдруг кто надумает. Да, чтобы он скачивал в нужном виде, надо сначала на неназываемом сайте настроить таймфрей, вид и параметры которые вы хотите получить.

 
★15

Жеееесть, век живи — век учись, только сейчас осознал и проверил, что финам не отдает глубокую историю только если суммарно в файле много данных, а если нарубить на участки по времени, то отдает… Мои модели будут очень рады))).

 

Финам там защиту от автоматики ставил, не знаю, правда, щас есть или нет. Просто если её нет, то селениум, конечно, это легкий оверкилл)

avatar

Replikant_mih

Молодцом!
avatar

av3

Replikant_mih, ставь time.sleep побольше, делай робота более человековыглядищим и все ок.
avatar

Марат

Марат, Не, там какие-то токены были или что-то типа того. Как поведенчески не отсвечивать представляю).
avatar

Replikant_mih

у меня не получается ставить дополнительные модулЯ в питон — где-то в компе блокировка (8 винда)…
avatar

Врач-бондиатОр

а зачем так громоздко через браузер? Он и простыми запросами отдает.
Длинную историю скачиваю блоками с перекрытием и проверяю что на краях они достоверно сшиваются.
avatar

ivanovr

Поставь Finam trade и анализируй котировки сколько хочешь
avatar

Mr Zlo

Mr Zlo, там криво. и все надо ручками
avatar

Марат

— Google капчу финам убрал уже давно, она всего один месяц простояла.
Так что все качается обычными HTTP запросами как и раньше.
— Когда стояла Google капча IP блокировался после большого количества запросов данных если это делалось в течении 30мин. Так что если бы капча стояла как и раньше, то много бы не скачалось без периодической смены IP
— Зачем нужен Selenium и установка кучи доп программ, когда все тоже самое можно сделать написав небольшое расширение для браузера на обычном JavaScript. Да кстати, даже тогда когда там была капча, не было никакой необходимости жать на кнопки формы и вбивать туда данные программно, нужно было только активировать периодическое обновление капчи, чтобы потом использовать ее в тех же HTTP запросах.
avatar

Sergeyka

Sergeyka, JavaScript не владею. Выбрал самый элементарный решение с точки зрения легкости реализации. Покажите свою реализацию, интересно
avatar

Марат

Марат, 

вот ссылка на расширение для Chrome
cloud.mail.ru/public/2Q6E/4BnaiH3xa

Распаковываем, заходим в Chrome расширения, включаем режим разработчика и нажимаем «загрузить распакованное расширение»

Потом заходим на сайт Финам и открываем экспорт котировок
  www.finam.ru/profile/moex-akcii/sberbank/export/
По умолчанию открывается Сбербанк(по крайней мере у меня)
И нажимаем на иконку расширения, появится вплывающее окно, c кнопкой «Start Loading» если ее нажать начнется загрузка данных 30min по фьючерсу Si за 2017-2019 год.
Если надо что-то другое то редактируем это в исходном коде.
avatar

Sergeyka

m.habr.com/ru/company/ods/blog/346632/ статья на хабре как обойти серверную блокировку и нагло грабить «некий сайт который мы не будем называть»
avatar

JSoros


теги блога Марат

....все тэги



2010-2020
UPDONW