Ты всё правильно пишешь, но попробуй написать в позитивном ключе: что нужно сделать? Вот есть у тебя набор заведений, которые в неправильных местах с неправильными тегами, и 5% из них вообще не существуют. Как это всё делать по-отдельности, как ты пишешь?
У тебя очень сложная задача, и очень много вещей, которые надо сделать. Многие из которых не понятно как делать. Но если представить, что ты можешь дать инструкцию на все этапы процесса, то:
Этап 1: Проверить заведения на существование. Пользователю даётся инструкция, как проверять, и по очереди показываются заведения. Пользователь должен сделать, что написано в инструкции, и по результатам нажать Да или Нет.
Этап 2: Проверка сайта. Пользователю показывается ссылка, и задаётся вопрос - действительно ли по ссылке сайт заведения N. Три варианта: Да, Нет, Сайт не открывается.
Этап 3: Проверка телефонов. Пользователю показывается ссылка на сайт, он должен найти на сайте телефон, и либо подтвердить корректность, либо ввести в валидаторе правильный(-е).
Этап 4: Проверка адресов. Как и этап 3 - пользователь идёт на сайт, ищет на нём этот адрес, если не находит - вводит в валидатор те, которые нашёл.
Этап 5: Проверка времени работы. Так же, как 3-4.
Этап 6: Геокодирование. Скрипт проверяет вхождение координат в здание, и тот ли самый на здании адрес, который собрались импортировать. При расхождении - геокодируем адрес в новые координаты, показываем пользователю место, и спрашиваем, правильно ли адрес геокодировался.
Этап 7: Проверить, есть ли заведение в OSM. Пользователю показывается карта с POI предполагаемого типа, и он находит POI на карте, либо жмёт "Новое заведение".
Этап 8: Вот теперь это можно забить в конфлатор и провести импорт.