Парсер сайта (Python)

15 000 руб. за проект
25 сентября 2019, 15:34 • 9 откликов • 81 просмотр
Необходимо написать парсер страниц сайта FCA Register (UK).

I. На входе первого парсера должен подаваться текстовый файл principals.txt со списком уникальных ссылок на страницы FCA Register. См. приложенный файл principals.


Для тестирования предоставляется список из 100 ссылок. См. приложенный файл principals_100_test.

Далее необходимо пропарсить страницы из списка, из них извлечь следующие данные:
- Company name
- Status
- Reference Number
- Contact details
-- Principal place of business (address, phone, fax, email, website)
-- Complaints (contact name, address, phone, fax, email, website)
-- Contacts responsible for insurance distribution (full name, url)
-Basic details
-- Type
-- Companies House Number
-- Current status
-- Status effective date
-- Insurance distribution
- Individuals (all pages)
--Filter: current involvement (by default)
-- Name, url, individual reference number, status
- Appointed representatives / tied agents / PSD or EMD agents
-- Currently attached to (Previously attached to: собирать не требуется)
-- Name, url, insurance distribution, firm reference number, effective from
- Permission (каждый текстовый блок должен быть выделен)
- Trading / brand names
-- Current names
-- Status, name, effective from

Результаты парсинга каждой страницы необходимо сохранить в папку principals в формате json. Название файла должно соответствовать id ссылки (например, 001b000000MfUytAAF.json).
Ссылки из таблицы Appointed representatives должны сохранятся в файл appointed_representatives.txt.

II. На входе второго парсера должен подаваться текстовый файл appointed_representatives.txt со списком уникальных ссылок на страницы FCA Register. См. приложенный файл appointed_representatives в качестве примера.

Страницы из appointed_representatives.txt имеют практически такую же разметку. Исключение – вместо Appointed representatives присутствует таблица Principals (Name, url, firm reference number, effective from, effective to), которую надо пропарсить. Также необходимо пропарсить те же поля что и в случае первого парсера.

Результаты парсинга каждой страницы необходимо сохранить в папку appointed_representatives в формате json. Название файла должно соответствовать id ссылки (например, 001b000000eipIcAAI.json).

Настоятельно рекомендуется использовать библиотеку scrapy для краулера и beautiful soup (lxml's HTML parser) для парсинга. Предыдущая версия сайта отлично парсилась с помощью указанных библиотек. Возможно, возникнет необходимость использования scrapy-splash или scrapy-selenium. Парсинг должен быть в одном потоке, без лишней нагрузки на сайт.

Прежде чем откликаться на заказ просьба ознакомиться с сайтом и убедиться в том что Вы сможете собрать данные (особенно по Individuals и Appointed representatives) и проверить нет ли на сайте блокировок парсинга.

Срок исполнения – 2 дня.
Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Очень доволен сотрудничеством. Алексей очень хорошо комуницирует, задает уточняющие вопросы и решает возникшие непредвиденные затруднения. Помимо написания парсера Алексей сам собрал необходимые данные и предоставил их (при том что это было сверх ТЗ). Качество написанного кода тоже на высоте. Рекомендую с ним работать и сам в будущем буду еще обращаться к Алексею.
~ 1 год назад
R50 28b5d71a64aa7c2441b96a02f1ae3bd0
Фрилансер
Очень интересная задача.
Отличная коммуникация.
Одно удовольствие так работать.
~ 1 год назад