Парсинг государственных закупок и опыт, который я из этого извлёк

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Привет всем! Меня зовут Александр и я впервые участвую в конкурсе статей.

Долго думал на какую тему написать, но многие проекты сейчас в процессе тестирования и возможно станут темами для последующих конкурсов, а сегодня я расскажу о том, как я вздумал спарсить с сайта гос. закупок в Казахстана всех участников тендеров и выгрузить всё это на свой сайт в качестве подпроекта на поддомене к белому сайту близкому по тематике.

Немного предыстории.
-----------
Я сам практикующий SEO специалист и занимаюсь в основном клиентскими проектами и своими белыми контентными сайтами.
Примерно с год назад я решил начать тестировать себя в дорвеях, купив в том числе лицензию Зенки для автоматизации.

На практике среди моих клиентов были в том числе с такого плана сайты - сервисы проверки контрагентов, тендерные площадки и все они так или иначе напрямую или через api парсили данные с гос. сайтов и агрегировали их у себя. Трафика в этой нише в рамках информации доступной на гос. сайтах и её агрегации на внешнем сайте порядка от 50к у слабых и до 500к посетителей в месяц в мощных проектов.

Я четко видел и понимал, что это просто горы трафика по НЧ запросам вроде БИН участника, ФИО, наименование компании и т.д.

У меня появилась идея просто в качестве эксперимента сделать шаблон на Зенке и спарсить, а после опубликовать у себя на сайте всех участников гос. закупок.
По ходу дела я учился в принципе собирать как-то одни из первых шаблонов и параллельно натыкаясь на проблемы с производительностью, ускорял их.

В итоге у меня шаблон получился из 2 частей.

В первой части я собрал урлы на всех участников госзакупа отсюда - их там стабильно 350-400к

часть 1.png


Вторым этапом я на лету переходил по урлу из списка рандомно и собирал внутри информацию - название компании, содержимое таблицы внутри со всеми данными о ней, что есть в данном открытом источнике и отдельными столбцами в таблицу выгружал ФИО и ИИН руководителя.

Здесь же на лету всё это добро публиковалось на сайт на Wordpress через XML-RPC на post-запросах - такое делал впервые и изрядно помучался, настроивая.

часть 2.png


Скорость с которой всё начало работать просто восхищала - парсинг и одновременно публикация 1200 записей в час. Меня это более чем устраивало, но через примерно сутки скорость сократилась вдвое и после постепенно замедлилось чуть ли не до 20-50 записей в час.

Дело в том и это опыт №1, что я не учел возможности любимого движка Worpress, где все уперлось в разросшуюся до неприличия базу данных. Всё жутко тормозило именно из-да БД и скорости записи в неё на объёмах.

Я привык делать обычными сайты на сотни, иногда тысячи страниц и банально с таким не сталкивался ранее, хотя и дружу с ВП порядка 10 лет. Начал искать как оптимизировать эти процессы, открыл для себя много нового, но особо ничего не помогло.

В итоге я на какое-то время отложил этот эксперимент, чтобы там все запостилось, закэшировалось и прочие процессы прошли без серьезной нагрузки сверху.

Спустя месяца полтора я вернулся к проекту и немного переделав шаблон с паузами и другими фишками, получил новое свежее дыхание для эксперимента. Скорость одновременного парсинга и публикации сразу достигала в пиковые моменты 3500 записей. Сервер серьезно напрягался, но в целом все выдержал.

В итоге такими итерациями я постепенно опубликовал порядка 250к участников закупок и по 2 тега на каждую запись, что в итоге мне дало примерно 750к посадочных страниц под НЧ. Я всё как положено оптимизировал по шаблону и настроил корректную индексацию.

Постепенно страницы начали залетать в индекс и спустя время трафик вырос до 1000-1500 посетителей в сутки. Повесил туда Adsense и что-то начало капать. Вроде кажется, что всё - больше ничего не нужно - жди пока все страницы проиндексируются, трафик вырастет и денег с рекламы станет больше.

Но не тут-то было и опыт №2 - не шутите с госами.

Первое, что мне прилетело - жалоба на меня от комитета государственных доходов (КГД) т.к. я ради привлечения внимания упомянул на сайте что это база КГД. На самом деле все эти данные между собой связаны и есть в обоих источниках, но на сайте гос. закупа в открытом доступе, а в КГД где-то внутри за 7ю дверьми спрятано и они подумали что я их взломал или как-то еще незаконно получил эти данные.

Всё решились простым телефонным разговором с сотрудником комитета информационной безопасности (или как-то иначе они называются)

Условились на том, что я просто уберу везде упоминание КГД и напишу как есть откуда данные и что они взяты строго из открытого источника без злых намерений - что на самом деле так и есть. Мой интерес в данном эксперименте строго в получении кучи трафика по НЧ запросам - не более.

На какое-то время настала тишина по таким вопросам. Я спокойно смотрел как растет трафик и всё что следует за ним. Но не долго музыка играла.

Здесь начинается мой опыт №3. В отличие от всех сервисов агрегации данных, где всё по нескольку раз на день сверяется и синхронизируется с официальными источниками, у меня на сайте все было статично - я просто разово спарсил кучу данных и опубликовал у себя на сайте.

Если кто-то связан с подобного рода проектами или тендерами, Вы знаете, что данные там постоянно изменяются, появляются новые участники гос. закупок, уходят старые, выкладываются новые лоты и прочая динамичность. Из-за статики в данных у меня на проекте я не переживал, что упущу трафик - мне было достаточно 750к страниц для эксперимента, но не всё так просто.

Мне начали поступать звонки с того же управления, которое рассматривает все жалобы на сайты вокруг гос. и не только. Получалось такое, что кто-то удалял свои данные с сайта госзакупок, а у меня они были опубликованы и меня вежливо просили удалить определенные данные с сайта и после еще написать официальный ответ от имени владельца ресурса, что вот мол данные о таком-то с такого-то сайта удалены.

Также было много обращений вроде такого: поменять почти и номер телефона компании у нас в базе т.к. на официальном сайте и в других места они сами изменили всё, а у нас с статике стоит последние несколько месяцев устаревшая информация.

В конце концов, после очередного такого запроса, я устал отвлекаться и просто снёс проект, посчитав его по-своему успешным экспериментом.
Вы можете попробовать повторить мой опыт - это правда было увлекательно и полезно для опыта, но без нормальной динамики в синхронизации данных из разных источников от такого проекта можно получить больше нервотрепки, чем трафика и денег :-)

Вот и всё - такая вот получилась история, надеюсь вам понравилось. Жду в комментариях 8-)
 
Тема статьи
SEO / PPC, Парсинг
Номер конкурса статей
Шестнадцатый конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Парсинг государственных
Опасное словосочетание на самом деле. Или сам пасринг идет на сторонних сайтах?
 
  • Спасибо
Реакции: Alexbrush

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Опасное словосочетание на самом деле. Или сам пасринг идет на сторонних сайтах?

Нет, не на сторонних сайтах, а именно из официального сайта гос. закупа (ссылка в статье есть) всё тянул напрямую. Хоть нагрузка была и большой, они этот пшик даже не заметили. Хотя признаю с огнём играл по-своему. С другой стороны если так агрессивно парсить частный сайт, то эксперимент бы закончился на том, что их сервер бы падал постоянно.
 

soprano

Client
Регистрация
25.08.2011
Сообщения
863
Благодарностей
930
Баллы
93
Парсер Zakupki.gov.ru - давно пользуюсь для сбора контактов компаний и ИП, не знал, что это опасно.
 

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Парсер Zakupki.gov.ru - давно пользуюсь для сбора контактов компаний и ИП, не знал, что это опасно.
Если открытый источник, то хоть руками я взял информацию, хоть зенкой в этом плане не опасно. Опасно нагрузку создавать на гос. сайты, но в целом они более чем мощные и устойчивые к нагрузкам.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
Интересный кейс. Может есть какой то шаблон или решение которое можно выложить до кучи?
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
390
Баллы
63
Что делали для оптимизации БД с таким количеством записей?
 

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Что делали для оптимизации БД с таким количеством записей?
В основном всё делалось в добавления индексов в БД. Сначала пытался вручную сделать, но не особо успешно. Потом нашел и купил старый плагин D-WP от некогда известного дорвейщика - это вроде сработало. Где-то в процессе я ещё тестировал через плагины кэширования настроить сокращение запросов к базе данных.
 

markwalberg

Client
Регистрация
28.12.2020
Сообщения
49
Благодарностей
12
Баллы
8
Парсер Zakupki.gov.ru - давно пользуюсь для сбора контактов компаний и ИП, не знал, что это опасно.
а где такой взять? меня уже задрали названивать, если честно, тоже хотелось бы поюзать)
 

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Интересный кейс. Может есть какой то шаблон или решение которое можно выложить до кучи?
Ну остались эти шаблоны что на скринах и непосредственно использовал. Но так как делал для себя и больше разово, там не делал никаких входных настроек. Могу наверно завтра подтереть свои данные с шаблонов и прикрепить, но там ничего сверхъестественного т.к. я сам относительно средний опыт имею в сборке шаблонов.
 
  • Спасибо
Реакции: markwalberg

markwalberg

Client
Регистрация
28.12.2020
Сообщения
49
Благодарностей
12
Баллы
8
Ну остались эти шаблоны что на скринах и непосредственно использовал. Но так как делал для себя и больше разово, там не делал никаких входных настроек. Могу наверно завтра подтереть свои данные с шаблонов и прикрепить, но там ничего сверхъестественного т.к. я сам относительно средний опыт имею в сборке шаблонов.
будет классно, с удовольствием посмотрел бы поковырял бы, буду ждать)
 

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
а где такой взять? меня уже задрали названивать, если честно, тоже хотелось бы поюзать)
А сам что-то собираешь по шаблонах или только готовое тестишь?) Это же увлекательно забабахать какую-то автоматизацию на Зенке, а парсинг данных это одно из простых занятий.
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
243
Благодарностей
76
Баллы
28
Парсинг только казахстанского сайта?
 

markwalberg

Client
Регистрация
28.12.2020
Сообщения
49
Благодарностей
12
Баллы
8
А сам что-то собираешь по шаблонах или только готовое тестишь?) Это же увлекательно забабахать какую-то автоматизацию на Зенке, а парсинг данных это одно из простых занятий.
пользуюсь готовыми решениями, сам тоже ковыряюсь иногда, torgi.gov.ru, например, пробовал, но там есть большие сложности с парсингом)
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Здесь же на лету всё это добро публиковалось на сайт на Wordpress через XML-RPC на post-запросах - такое делал впервые и изрядно помучался, настраивая.
Интересно посмотреть было бы :ah:.
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
243
Благодарностей
76
Баллы
28

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Сайт на доменe kz размещал? И интересно у какого хостера сервак брал?
 

soprano

Client
Регистрация
25.08.2011
Сообщения
863
Благодарностей
930
Баллы
93

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Сайт на доменe kz размещал? И интересно у какого хостера сервак брал?
Да на .kz -эксперимент проводил на поддомене от другого проекта. Сервер у меня немецкий - Contabo, а вот чтобы проходить по закону про домены .kz и местное размещение существуют свои приемы. Не бесплатно, но действенно.
 

sergio197675

Client
Регистрация
21.09.2019
Сообщения
360
Благодарностей
318
Баллы
63
Приветствую! Начинал осваивать эту тему но пока забросил...спасибо , напомнили и мотивировали)
Зы - Rush в нике это про ту самую Rush или не Rush?)))
 

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Приветствую! Начинал осваивать эту тему но пока забросил...спасибо , напомнили и мотивировали)
Зы - Rush в нике это про ту самую Rush или не Rush?)))
Это Brush :-) и всё намного проще, чем привязка к одноименной компании Rush.
AlexBrush - это Alexandr Brushkivskiy или Александр Брушкивский
 
  • Спасибо
Реакции: sergio197675

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Парсинг только казахстанского сайта?
Да, но подобный эксперимент можно провести и на других гео, где есть подобные проекты и куда данных для привлечения трафика по НЧ запросам в подобной тематике.
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
ПО РУ ЗАКУПКАМ
Если не столь критично "нон-стоп" и не хочется ждать, то
Открываем FileZilla
для ФЗ №223
Хост: ftp://ftp.zakupki.gov.ru/out/
Логин: fz223free
Пароль: fz223free
Порт: 21
для ФЗ №94 и ФЗ №44:
Хост: ftp://ftp.zakupki.gov.ru
Логин: free
Пароль:free
Порт: 21
Скачиваем за ночь 24 Tb данных, формируем списки госорганизаций, подрядчиков, субподрядчиков, ИП и частные компании, обогащаем данные из тендерной информации, ну короче делаем все что нам нужно на текущий момент.
Для non-stop (получать тендеры в режиме реального времени)нужен ключ организации.
 
Последнее редактирование:

Alexbrush

Client
Регистрация
20.11.2020
Сообщения
164
Благодарностей
144
Баллы
43
Если не столь критично "нон-стоп" и не хочется ждать, то
Открываем FileZilla
для ФЗ №223
Хост: ftp://ftp.zakupki.gov.ru/out/
Логин: fz223free
Пароль: fz223free
Порт: 21
для ФЗ №94 и ФЗ №44:
Хост: ftp://ftp.zakupki.gov.ru
Логин: free
Пароль:free
Порт: 21
Скачиваем за ночь 24 Tb данных, формируем списки госорганизаций, подрядчиков, субподрядчиков, ИП и частные компании, обогащаем данные из тендерной информации, ну короче делаем все что нам нужно на текущий момент.
Но можно и парсить, кому как удобней.
Для non-stop (получать тендеры в режиме реального времени)нужен ключ организации.
Всего-то 26 террабайта данных.
Если это ответ по теме моего поста, то в рамках эксперимента мне абсолютно не интересны были РУ госзакупки.
 

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Всего-то 26 террабайта данных.
Если это ответ по теме моего поста, то в рамках эксперимента мне абсолютно не интересны были РУ госзакупки.
Нет, не ответ Вам, просто для ознакомления тем кому это интересно. Тем более как я понял 26 000 Гигабайт информации вообще ни о чем
Добавил в предыдущий коммент поправку
 
Последнее редактирование:

markwalberg

Client
Регистрация
28.12.2020
Сообщения
49
Благодарностей
12
Баллы
8
Например какие?
поймать нужные элементы там составляет некоторые сложности, потому что сайт изначально на столько криво и сделан не для людей, а для ...слово не могу подобрать даже для кого....
 

markwalberg

Client
Регистрация
28.12.2020
Сообщения
49
Благодарностей
12
Баллы
8
А сам что-то собираешь по шаблонах или только готовое тестишь?) Это же увлекательно забабахать какую-то автоматизацию на Зенке, а парсинг данных это одно из простых занятий.
всё ещё с нетерпением ждём готового решения :D
 

bigloafer

Client
Регистрация
23.07.2020
Сообщения
243
Благодарностей
76
Баллы
28
поймать нужные элементы там составляет некоторые сложности, потому что сайт изначально на столько криво и сделан не для людей, а для ...слово не могу подобрать даже для кого....
Я думаю бессмысленно парсить через браузер. Дешевле будет подобрать запросы. 100% ответ идет через JSON.
 
  • Спасибо
Реакции: DevOps

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)