Для сайта football-fun.ru нужно разработать модуль Class в ООП PHP для идентификации (унификации) игроков. В базе данных есть таблицы с данными по футболистам, футбольным клубам, турнирам, амплуа, странам, города. Также есть таблицы созданные на ...
PHP скрипт - парсер google maps places
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Нужно написать скрипт который сможет отпарсить google maps places и собрать интересующую нас информацию и 6000 офисов принадлежащих 35 компаниям
У нас есть mysql дам с компаниями и их офисами.
Дамп можно скачать тут -> https://www.dropbox.com/s/5grkyqjpvi0u6ca/ustates_companies.sql.zip?dl=0
В дампе 3 таблицы
1 - Компании
`wp_ustates_companies` (
`id` int(11) NOT NULL,
`pid` int(11) NOT NULL,
`slug` varchar(64) NOT NULL,
`name` varchar(64) NOT NULL
);
таблица содержит сведения о компаниях - 35 записей
у одной компании могут быть несколько дочерних
например строка VALUES (1, 0, 'speedy-cash', 'Speedy Cash'),
2 - Офисы
`wp_ustates_company_offices` (
`id` int(11) NOT NULL,
`company_id` int(11) NOT NULL,
`company_name` varchar(64) NOT NULL,
`state` varchar(32) NOT NULL,
`state_code` varchar(2) NOT NULL,
`city` varchar(255) NOT NULL,
`zip` varchar(16) NOT NULL,
`address` varchar(255) NOT NULL,
`tel` varchar(16) NOT NULL,
`tel2` varchar(16) NOT NULL,
`provider_google_maps_places_profile_url` varchar(512) NOT NULL,
`provider_google_maps_places_lr` datetime NOT NULL,
)
связь с первой таблицей через ID `wp_ustates_companies`.`id`=`wp_ustates_company_offices`.`company_id`
также дублируется название компаний `wp_ustates_companies`.`name` = `wp_ustates_company_offices`.`company_name`
таблица содержит сведения о адресах офисов компаний - около 6к записей
например строка VALUES (2, 1, 'Speedy Cash', 'Missouri', 'MO', 'Independence', '64052', '11221 E 23rd St', '(816) 833-1200', ''),
3 - Отзывы
`wp_ustates_company_office_reviews` (
`id` int(11) NOT NULL,
`office_id` int(11) NOT NULL,
`company_id` int(11) NOT NULL,
`provider` varchar(64) NOT NULL,
`provider_fr` datetime NOT NULL,
`provider_lr` datetime NOT NULL,
`date` datetime NOT NULL,
`date_str` varchar(64) NOT NULL,
`stars` float NOT NULL,
`user_id` int(11) DEFAULT NULL,
`name` varchar(64) NOT NULL,
`review` varchar(512) NOT NULL
)
связь с первой таблицей через ID
`wp_ustates_companies`.`id`=`wp_ustates_company_office_reviews`.`company_id`
связь со второй таблицей через ID
`wp_ustates_company_offices`.`id`=`wp_ustates_company_office_reviews`.`office_id`
таблица пустая - ЕЁ НУЖНО ЗАПОЛНИТЬ
В базу можно добавлять необходимые поля для работы скрипта, если понадобится (например чтобы ошибки отлавливать или дата/время последней попытки скана), и менять дефолтные значения для столбцов если нужно
Логика работы скрипта:
ПРЕДПОЧТИТЕЛЬНО РАБОТАТЬ ЧЕРЕЗ GOOGLE API ГДЕ ЭТО ВОЗМОЖНО
Проходим по всем записям таблице №2 с офисами компаний - опираясь на название, адрес и тел и находим профиль компании в google maps places
например по
Cashback Loans California CA Orange 92868 314 S Main St. (714) 203-6274
должны получить этот профиль https://www.google.com/maps/place/Cashback+Loans/@33.7838074,-117.8702047,17z/data=!4m5!3m4!1s0x80dcd9d08e47d047:0xebf27356e9a3af70!8m2!3d33.783803!4d-117.868016?hl=en
и сохранить его в поле `provider_google_maps_places_profile_url` из таблицы N2
на этом профиле видим Reviews https://www.dropbox.com/s/7wsjch4ebnkmul5/Screenshot%202017-12-16%2000.06.31.png?dl=0
внутри 5 отзывов https://www.dropbox.com/s/hyxm1605fdc4zte/Screenshot%202017-12-16%2000.07.40.png?dl=0
их нужно отпарсить и положить в таблицу №3
Пример заполнения для первого отзыва
`id`- авто инкремент
`office_id` - id офиса
`company_id` - id компании
`provider` - всегда = google_maps_places
`provider_fr` - дата первичного парсинга отзыва скриптом
`provider_lr` - дата последнего обновления отзыва скриптом при условии изменений в отзыве(касаемо даты - читайте ниже)
`date` - дата когда был оставлен отзыв если дата в читабельном числовом формате типа 2017-12-17 но для гугла она не подходит - ее пустую оставляем
`date_str` - дата нашем случае ‘a year ago’
`stars` - 1
`user_id` - в ссылке под именем есть урл https://www.google.com/maps/contrib/115142597581803593844/reviews?hl=en-EN нас интересует цифровая часть 115142597581803593844
`name` - sungyoon82
`review` - Rude service bad attitude never get a loan over there again. I hope they go outta business. Terrible customer service avoid at all costs
скрипт должен по мере работы формировать отчет чтобы можно было видеть
- сколько офисов отсканировано и сколько стоит на очереди
- сколько отзывов всего было добавлено
- список компаний у которых не оказалось ни одного отзыва (урл на профиль компании обязательно)
- сколько ошибок во время сканирования было
скрипт должен уметь перечитывать профиль компании для обновления инфы
- добавлять новые отзывы которых раньше не было но НЕ УДАЛЯТЬ старые которых уже нет
- учитывать что один пользователь может оставить несколько отзывов
- изменять `date_str` по необходимости и менять при этом `provider_lr` на текущую дату
Заявки фрилансеров
Похожие заказы
- Веб-программирование13 заявокЗакрыт7 лет назад
Есть сайт авторемонт77.рф в нем каждая страница сделана как отдельный шаблон и к каждой странице добавлены заголовки по городам, регионам, станциям метро. Заголовки вводятся также через страницы. К одному шаблону добавляется около 400 заголовков путем создания новой ...
Веб-программирование8 заявокЗакрыт7 лет назад- $50
- убрать капитализацию с основного меню - создать вторую полоску меню, с возможностью изменять это меню - создать систему, позволяющую при наведении на определенный бренд в перечне меню показывать логотип, по возможности наличия ...
Веб-программирование2 заявкиЗакрыт7 лет назад Нужно разработать скрипт для Twilio, который выполняет последовательный переход пользователя по голосовому меню. Голосовое меню несложное, состоит из 3х шагов. 1. На первом шаге (сразу после дозвона), скрипт предлагает пользователю выбрать ...
Веб-программирование1 заявкаЗакрыт7 лет назадНа сайте имеется форма обратной связи, которая реализована не до конца + ряд других сомнительных в плане реализации вещей. Требуется доработка существующего решения и исправление ошибок. Полный список задач подробно указан в ТЗ во вложении. ...
Веб-программирование4 заявкиЗакрыт7 лет назад- Веб-программирование1 заявкаЗакрыт7 лет назад
Здравствуйте, нам необходим онлайн-калькулятор с графическим динамическим отображением результатов расчета для сайта на WP во всплывающем окне. Примерная форма и таблица для расчета прилагается. Внешний вид формы должен быть согласован. Сообщите, пожалуйста, стоимость и сроки выполнения ...
Веб-программирование8 заявокЗакрыт7 лет назадДобрый день! Есть сайт на MODx выводим поля input с подсказками с помощью скрипта easyautocomplete.com/ Поля: страна – город – улица – строение joxi.ru/12MB93fMDMRNAJ joxi.ru/Grqz7JSQgQvMmz Нужно сделать зависимость полей. ...
Веб-программирование4 заявкиЗакрыт7 лет назадНеобходимо внести изменения в готовое мобильное приложение на андроиде (под иос уже написано, нужно просто некоторые моменты скопипастить). Приложение написано на Котлине, + используется rx паттерн. Правки могу скинуть отдельным файлом кому будет интересна такая работа. ...
Веб-программирование3 заявкиЗакрыт7 лет назадhttps://xn----8sbahbbje2arhea4bjc1ewm.xn--80asehdb/ сайт 1. На сайте присутствуют формы, имеющие поэтапный ввод данных. Случаются ситуации, когда посетитель вводит номер телефона, а после не вводит регион и уходит с сайта. Нужно сделать так, чтобы если посетитель не ...
Веб-программирование3 заявкиЗакрыт7 лет назад