Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Про Парсинг и веб-интерфейс:

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

Изначально пользователь  вносит входные данные

City  - текстовое поле

Street_number  - вводим вручную

Street_address  - вводим вручную

Suburb    - вводим вручную

Property_type   - лист со значениями: House, apartment, townhouse, unit.

Bedrooms - лист от 1-6

После того как внесены поля упомянутые выше, должен запускаться парсер который используя введенные выше данные будет производить поиск по нескольким внешним реестрам (webscraping, а не API), выбирать определенные поля из результатов и ими заполнять последующие поля.

Поле 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. Значение может быть отрицательным.

Хотя все эти поля презаполняются парсером перед сохранением листинга в базу должна быть возможность поправить их руками.

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

Должен быть интерфейс поиска листингов в базе по адресу с гибкой фильтрацией. Или если нажать поиск без критериев то интерфейс должен показать все листинги.

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

Пара примеров:

Представьте, что во время внесения адреса я допустил ошибку в имени улицы. То есть поиск по реестрам вернет  ошибку. Вот я это обнаружил, исправил имя улицы и джаваскрипт должен понять, что поле Street_name поменялось. Как только он это понял он должен прогнать поиск по реестрам снова.

Или другой пример . Вот внес я листинг и через 3 дня понял, что допустил ошибку и при внесении листинга указал, что он 1-комнатный, а не 3-х.

Я нахожу поиском этот листинг. Начинаю редактироват его и меняю количество комнат.Парсер должен понять, что количество комнат поменялось и так как этот параметр используется при поиске по реестру https://www.qv.co.nz/resources/property-investment-rental-analysis, то парсер должен прогнать поиск по этому реестру по новой и в соответствии с новыми результатами выдачи поменять значение поля Median_Rent_QV.

Писать код для вставки в базу нужно с экранированием:

На уровне приложения мы данные от пользователя оборачиваем в строку и кавычки экранируем с помощью обратного слэша.

Нужна возможность просмотра, внесения, редактирования и удаления листингов

Описание базы:

id – уникальное поле счетчик

city  - текстовое поле

street_number  - текстовое поле

street_address  - текстовое поле

suburb  - текстовое поле

property_type   - текстовое поле

bedrooms - целые числа

government_value - целые чила

current_rates - целые чила

median_rent_qv - целые чила

capital_growth - десятичные чила

median_rent_tb - целые чила

Код надо писать с документацией (на русском) и коментариями.

Ежедневные коммиты в мой git репозиторий.

Оплата через безопасную сделку.

Возможна работа двух согласованных специалистов - по парсеру и интерфейсу.

8 лет назад
freelance4me
Леонид 
43 годаРоссия
8 лет в сервисе
Был
7 лет назад
1 отзыв