interlark / parser-2gis

Парсер сайта 2GIS для сбора адресов и контактов предприятий России и стран СНГ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Парсинг организаций

YAGAOFFIT opened this issue · comments

Приветствую, столкнулся с проблемой, мне надо запарсить организации из определенного здания и у меня не получается это сделать. Есть ли решение этой проблемы?

Привет. Так сделать нельзя, т.к. изначально парсер написан больше в помощь маркетинговым исследованиям в рамках города или ряда городов. К тому же не все здания имеют вкладку "В здании" со списком всех организаций в нём.

Такие случаи имеют ссылку следующего характера: https://2gis.ru/<city_id>/inside/<building_id>
Например, https://2gis.ru/perm/inside/2252435468874737

И парсятся заменой валидации URL'а организации

def valid_link(node: DOMNode) -> bool:

На что-то вроде

        def valid_link(node: DOMNode) -> bool:
            if node.local_name == 'a' and 'href' in node.attributes:
                link_match = re.match(r'.*/firm/.*', node.attributes['href'])
                return bool(link_match)

Плюс прокрутка списка для экстракта ссылок организаций.
Возможно, в будущем добавлю. Идея хорошая.

Уточнил, вкладки "В здании" не имеют разве что частные дома и адреса где их просто нет.
В v0.1.9 появилась поддержка парсинга списка организаций в здании с помощью таких ссылок. См. wiki.

парочку зданий спарсил успешно, но на ссылке https://2gis.ru/spb/inside/5348660212758770 после Ситилинка заканчивает поиск, хотя организаций в здании ещё очень много

в чем может быть проблема? она решаема со стороны пользователя или разработчика?

screen_82.mp4

В здании 133 организации, повторить описанную проблему не получилось. Убедитесь, что используете российский IP адрес.