Парсер в виде расширения для хрома.
Требуется написать расширение под хром которое будет парсить данные из определенных реестров.
Парсинг должен происходить непосредственно с клиентского компьютера, имитируя деятельность обычного браузера.
Пример работы:
Пользователь ходит по вебсайтам досок объявлений в поисках дома.
Находит дом на одной из них или ему приходит рассылка от вебсайта.
Вобщем каким то образом видит листинг выставленный агентом по недвижимости.
Пользователь в браузере идет на мой сайт, проходит там процедуру аутентификации (позже будем реализовывать),вводит там адрес дома и его параметры( эта страничка тоже кстати часть задания):
City - текстовое поле
Street_number - вводим вручную
Street_address - вводим вручную
Suburb - вводим вручную
Property_type - лист со значениями: House, apartment, townhouse, unit.
Bedrooms - лист от 1-6
Заполнил пользователь эти поля и начинает работать парсер который отправляет запросы с компьютера пользователя в реестры. Как только ответы приходят оставшиеся поля этими ответами заполняются. В случае если пользователь изменил улицу или номер дома (ну ошибся во время ввода) парсер должен начать процесс по новой.
Итак вот поля на вебстраничке (которую как я говорил надо тоже сделать) которые заполняет парсер:
Поле Median_Rent_TB – Поле которое должно заполняться по результату поиска во внешнем реестре используя значение suburb.
https://tenancy.govt.nz/rent-Rent-and-bills/market-rent/
Часто бывает что такой район может быть в нескольких городах, или даже в одном городе но разделен на части.
Например введите Frankton и увидите, что сайт выдаст сообщение Sorry, there are multiple results for "Frankton".
И 3 ссылки на франктон:
SUGGESTIONS:
Hamilton - Dinsdale South/Frankton
Hamilton - Hamilton Central/Maeroa/Frankton Junction
Queenstown Lakes - Queenstown/Frankton/Arrowtown
В этом случа парсер должен открыть попап окно браузера и позволить пользователю выьрать из предлагаемых ссылок.
И уже из результата извлечь значение поля Median и подставить его в поле Median_Rent_TB.
Такой же принцип попап окна должен относится ко всем ошибкам поиска во всех реестрах. Например если внешнией реестр недоступен то должно открыться попап окно браузера с ошибкой которую возвращает реестр - будь то 403,404 или 500. Ну или если реестр отвечает, что не смог найти ничего для этого адреса. Или если нашел, но больше одного результата.
Поле Median_Rent_QV – Поле которое должно заполняться по результату поиска во внешнем реестре используя полный адрес дома. https://www.qv.co.nz/resources/property-investment-rental-analysis
Тут для поиска используются поля city, property_type, bedrooms.
В результате выдачи надо найти нужный район(suburb), извлечь оттуда значение поля median rent и внести его в значение median_rent_qv.
Поле Government_value – Поле которое должно заполняться по результату поиска во внешнем реестре.
Реестр зависит от города.
Hamilton - http://www.hamilton.govt.nz/our-services/property-and-rates/propertydatabase/Pages/default.aspx (пример для поиска 15 Arista way)
В результате выдаст ссылку на Valuation Number(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Whangarei - http://www.wdc.govt.nz/RatesandPayments/Rates/Pages/RatesDatabaseSearch.aspx (пример для поиска 12 Ngaio street)
В результате выдаст ссылку на Assessment No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Upper Hutt - http://eservices.uhcc.govt.nz/rates/properties/search (пример для поиска 18 Kiwi street)
В результате выдаст ссылку на Valuation No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Поле Current_Rates – Поле которое должно заполняться по результату поиска во внешнем реестре используя полный адрес дома.
Реестр зависит от города.
Причем для города Hamilton искать нужно по двум реестрам и суммировать результат перед внесением его в поле Current_Rates.
Hamilton - http://www.hamilton.govt.nz/our-services/property-and-rates/propertydatabase/Pages/default.aspx (пример для поиска 15 Arista way)
В результате выдаст ссылку на Valuation Number(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Current rates, потом провести работу со вторым реестром
http://www.waikatoregion.govt.nz/Council/Rates/Find-out-your-rates/ откуда выбрать значение Total rates (including GST) и суммировав оба значения подставить их сумму в current_rates.
Whangarei - http://www.wdc.govt.nz/RatesandPayments/Rates/Pages/RatesDatabaseSearch.aspx (пример для поиска 12 Ngaio street)
В результате выдаст ссылку на Assessment No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Total $ и подставить его в Current_Rates
Upper Hutt - http://eservices.uhcc.govt.nz/rates/properties/search (пример для поиска 18 Kiwi street)
В результате выдаст ссылку на Valuation No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Estimated Total и подставить его в Current_Rates
Поле Capital_Growth
реестр https://www.qv.co.nz/resources/monthly-residential-value-index
в зависимости от города выбирается District и после этого жмется кнопка show.
Из результата нужно выбрать поле Change in Value и подставить в Capital_Growth. Значение может быть отрицательным.
Код надо писать с документацией (на русском) и коментариями.
Ежедневные коммиты в мой git репозиторий.
Оплата через безопасную сделку.
Если можете предложить решение лучше буду рад обсудить.