Марат
Марат личный блог
12 октября 2020, 11:39

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

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

 
12 Комментариев
  • Replikant_mih
    12 октября 2020, 12:09

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

     

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

  • av3
    12 октября 2020, 12:11
    Молодцом!
    • Replikant_mih
      12 октября 2020, 12:41
      Марат, Не, там какие-то токены были или что-то типа того. Как поведенчески не отсвечивать представляю).
  • Врач-бондиатОр
    12 октября 2020, 12:38
    у меня не получается ставить дополнительные модулЯ в питон — где-то в компе блокировка (8 винда)…
  • Roman Ivanov
    12 октября 2020, 12:40
    а зачем так громоздко через браузер? Он и простыми запросами отдает.
    Длинную историю скачиваю блоками с перекрытием и проверяю что на краях они достоверно сшиваются.
  • Механик Рынка
    12 октября 2020, 12:47
    Поставь Finam trade и анализируй котировки сколько хочешь
  • Beach Bunny
    12 октября 2020, 13:21
    — Google капчу финам убрал уже давно, она всего один месяц простояла.
    Так что все качается обычными HTTP запросами как и раньше.
    — Когда стояла Google капча IP блокировался после большого количества запросов данных если это делалось в течении 30мин. Так что если бы капча стояла как и раньше, то много бы не скачалось без периодической смены IP
    — Зачем нужен Selenium и установка кучи доп программ, когда все тоже самое можно сделать написав небольшое расширение для браузера на обычном JavaScript. Да кстати, даже тогда когда там была капча, не было никакой необходимости жать на кнопки формы и вбивать туда данные программно, нужно было только активировать периодическое обновление капчи, чтобы потом использовать ее в тех же HTTP запросах.
      • Beach Bunny
        18 октября 2020, 08:19
        Марат, 

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

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

        Потом заходим на сайт Финам и открываем экспорт котировок
          www.finam.ru/profile/moex-akcii/sberbank/export/
        По умолчанию открывается Сбербанк(по крайней мере у меня)
        И нажимаем на иконку расширения, появится вплывающее окно, c кнопкой «Start Loading» если ее нажать начнется загрузка данных 30min по фьючерсу Si за 2017-2019 год.
        Если надо что-то другое то редактируем это в исходном коде.
  • JSoros
    12 октября 2020, 14:44
    m.habr.com/ru/company/ods/blog/346632/ статья на хабре как обойти серверную блокировку и нагло грабить «некий сайт который мы не будем называть»

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн