Skip to content

Home1esscat/filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Приложение для автоматической проверки номера на предмет наличия его в базе.

Есть регулярно пополняемая база номеров. Необходимо выделить из этой базы все номера, ранее не зарегистрированные на сайте и добавить их в excel файл.

Сайт, который предоставляет необходимые данные о номере (есть в базе или нет) не имеет api для доступа извне, поэтому мне пришлось парсить html.

Я начал экспериментировать с Postman. Стало понятно что все запросы должны быть подписаны двумя токенами - XSRF, который валиден 24 часа, и CSRF, который создавался из пары логин - пароль, и не имел срока годности.

Авторизация происходит в два запроса.
Первый - GET, который возвращает CSRF.
Второй - POST с CSRF который возвращает XSRF

С авторизацией разобрался. Номер телефона передавался в самой ссылке, поэтому была создана маска, которая приводила номер телефона к нужному виду. После этого необходимо было отличать, какой HTML ответ означал что номера нет в базе. Был выбран самый простой способ - проверять на количество символов в странице. Если их 8656, номер нам подходит (очень грубое решение но работает :). Дальше этот номер попадает в таблицу и сохраняется в памяти телефона. Работа с входным и выходным excel файлом происходит с помощью сторонней библиотеки. Проект писался по принципу лишь бы работало.

В процессе написания был получен опыт взаимодействия с сайтами без api, опыт работы с excel таблицами, появилось понимание принципов работы авторизации на сайте, а также получен опыт отладки кода.

Самое главное - проект принёс пользу и отфильтровал около 70 000 номеров, сэкономив десятки часов людям, которые ранее проводили фильтрацию вручную.