interlark / parser-2gis Goto Github PK
View Code? Open in Web Editor NEWПарсер сайта 2GIS для сбора адресов и контактов предприятий России и стран СНГ
License: GNU Lesser General Public License v3.0
Парсер сайта 2GIS для сбора адресов и контактов предприятий России и стран СНГ
License: GNU Lesser General Public License v3.0
можно ли в оболочке сделать выбор необходимых классов для парсинга или подскажите как поправить в исходниках. Заранее спасибо.
Failed to load GUI: dlopen(/var/folders/xj/4wzr41z108lcz9df2p0635_w0000gn/T/_MEIyGDaBb/lib-dynload/_tkinter.cpython-38-darwin.so, 2): Library not loaded: /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers
Referenced from: /private/var/folders/xj/4wzr41z108lcz9df2p0635_w0000gn/T/_MEIyGDaBb/libtk8.6.dylib
такую ошибку выдает терминал
куда копать?
interlark, здравствуйте!
Очень благодарен за Ваш проект. Безумно крутую вещь Вы сделали.
Подскажите, пожалуйста, а не встречалось ли Вам что-то похожее по Google Maps или Яндекс Картам?
Или есть ли у Вас в планах разработка подобного для других сервисов?
С уважением,
negeloT
10:50:06.731 | Ошибка во время работы парсера.
Traceback (most recent call last):
File "parser_2gis\gui\app.py", line 83, in run
File "parser_2gis\parser\parser.py", line 204, in parse_url
File "json_init_.py", line 339, in loads
TypeError: the JSON object must be str, bytes or bytearray, not dict
при попытке спарсить
10:49:37.274 | Парсинг ссылки https://2gis.ru/dubai/search/Обои/rubricId/556
Здравствуйте, сегодня скачал версию для macos, выбрал рубрику, ввел название файла для записи данных. После нажатия на кнопку Запуск открывается Chrome с вкладкой 2ГИС, несколько секунд ничего не происходит, а потом браузер закрывается. В файле выбранном для записи данных кроме названия столбцов ничего нет.
Во время работы получена ошибка .
После нее парсер остановился.
Получена ошибка при попытке запустить парсер очередной ссылки.
Посути понятно откуда она растет . Это либо блокировка IP либо проблемы с инетом.
Но желательно обрабатывать ошибку и перезапускать парсер ссылки .
22:31:02.141 | Ошибка во время работы парсера.
Traceback (most recent call last):
File "parser_2gis\gui\app.py", line 83, in run
File "parser_2gis\parser\parser.py", line 138, in parse_url
File "parser_2gis\chrome\remote.py", line 233, in navigate
parser_2gis.chrome.exceptions.ChromeException: net::ERR_CONNECTION_CLOSED
На моем хроме есть расширение(Random User-Agent (Switcher)), и при запуске парсера, он запускает без расширении. Можно как то включить в настройках, чтобы можно было включить с расширениями?
Выгрузка в CSV или JSON это очень хорошо.
А вот например выгрузка в sqlite или Postgresql ?
Загрузив в них единожды данные очень удобно далее делать выборки .
Здравствуйте!
IP Российский
Пробовал 2 разных IP
Ссылка сгенерирована в программе
https://2gis.kz/nur_sultan/search/Продуктовые магазины/rubricId/373
В 2ГИС написано 1960 объектов.
Грузится только 37-40 организаций.
Если смотреть в 2ГИС, то парсится только 5 страниц с сайта. Дальше не идет.
Потом пишет «парсинг завершен» и все закрывается.
10:24:35.826 | Ошибка во время работы парсера.
Traceback (most recent call last):
File "parser_2gis\writer\writers\csv_writer.py", line 172, in _extract_raw
File "pydantic\main.py", line 342, in pydantic.main.BaseModel.init
pydantic.error_wrappers.ValidationError: 3 validation errors for CatalogItem
name_ex
field required (type=value_error.missing)
org
field required (type=value_error.missing)
rubrics
field required (type=value_error.missing)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "parser_2gis\runner\gui.py", line 69, in run
File "parser_2gis\parser\parsers\main.py", line 222, in parse
File "parser_2gis\writer\writers\csv_writer.py", line 153, in write
File "parser_2gis\writer\writers\csv_writer.py", line 175, in _extract_raw
File "parser_2gis\common.py", line 115, in report_from_validation_error
KeyError: 'name_ex'
Вопрос: Что я делаю не так? Подскажите, как загрузить все 1690 объектов?
Добрый день,
крайне желательно вытягивать ещё и ID сети компаний там, где они есть. Наименование сети тоже, но это уже не так важно.
Видимо, нужно организовывать дополнительный поиск ссылки что-вроде "/branches/" по странице фирмы.
Заранее благодарю за ответ.
Парсер может собират информацию по адресу, по всем рубрикам и по всем компаниям на адресе, или по координатам?
Так-же может имеет смысл внедрить возможность выгрузки по всем рубрикам?
А есть способ выгрузки всего не по области (которая к городу примыкает), а по населенному пункту который входит в эту область?
как пример: Шаховская городской округ
Приветствую, столкнулся с проблемой, мне надо запарсить организации из определенного здания и у меня не получается это сделать. Есть ли решение этой проблемы?
Добрый!
Спасибо Вам за такое нужное приложение!
И можно ли сделать множественный выбор рубрик при генерации ссылок?
Просто каждый раз выбирать по одной рубрике не очень удобно.
Заранее спасибо!
Парсер очень крутой. Мне очень понравился. Столкнулся с проблемой при выгрузке свыше 1000 строк. Зависает браузер. и перестает грузить новые строки. Пробывал на 2 машинах результат аналогичный. 1100-1300 строк выгружает а потом зависает если получиться поправить будет очень круто))). Спасибо за хороший и удобный софт
Добрый!
Похоже версия нестабильна. Ограничение на объем памяти не работает.
Программа забирает всю свободную память и виснет.
16:24:23.000 | Парсинг ссылки завершён.
16:24:23.000 | Вкладка браузера была закрыта.
16:24:23.022 | Парсинг завершён.
При работе парсера иногда возникает данная ошибка.
К сожалению не знаю как узнать о ней больше и приложить логи.
Привет. Да, видимо, 06.07.23 2GIS решил ввести капчу, т.к. слишком много людей стали использовать парсер и компания стала чувствовать убытки. Единственный выход - это подключение captcha-resolver сервиса, например [anti-captcha](https://anti-captcha.com). Если свободное время - сделаю, да и pull реквесты приветствуются.
Originally posted by @interlark in #32 (comment)
из лога:
23:39:00.702 | Сервер ответил ошибкой: Authorization error (key is blocked, please contact [email protected])
Также запрос на https://data.2gis.com/ показывает по категории 311 записей, а парсер выгружает только 57.
Иногда парсер падает в ошибку .
И в принципе не понятно какие ссылки уже готовы какие нет .
Было бы круто если обработанные ссылки удалялись из списка.
И результат сохранялся .
Таким образом если даже парсер упал, то можно продолжить далее.
Скажите а можно обойти ограничение на максимальное количество записей в выгрузке?
"| Парсинг [2800] > Wildberries
| Спарсено максимально разрешенное количество записей с данного URL."
Добрый день! После прохождения капчи загружает еще не более 10 контактов и заканчивается, хотя в открывшемся окне chrome с 2GIS показывает 767 организаций. Предполагаю, что после капчи загружает ещё один лист контактов и всё.
зачем он нужен, если только названия и режим работы собирает
Добрый день,
Скачал парсер для Windows, но антивирус увидел в нём троян. Это нормально?)
При работе парсера примерно на 7ой ссылке начинают блокировать АПИ ключ.
Примерно на 100ой ссылке блокировка по IP.
Нужен механизм прокси . И обработка повтора запроса при ошибке блокировки ключа или таймауту .
Так же замечены ошибки парсера ответа json.
Так же имеет смысл помечать ссылки отработанные корректно в парсере . Чтобы можно продолжить далее .
Предлагаю следующее.
1 сделать возможность работать в несколько потоков.
2 Загружать файлы с ссылками. Ранее подготовленными. К сожалению если требуется выбрать например 20/30 рубрик то клацать мышкой не удобно. Примерно там 1590 ссылок по итогу получается .
Файлы например можно поделить по городам и передавать парсеру. Далее он их обрабатывает и ложит в отдельные файлы результат .
3 При старте проверять есть ли файл куда будет производится сохранение . Просто по недогляду легко запустить парсер с сохранением в старый файл и он его тут же затирает .
Посути это все сделать уже можно используя интерфейс командной строки и немного скриптов . Но не все могут их писать .
Здравствуйте, столкнулся с задачей вытащить абсолютно информацию о всех здания в определенном городе.
Парсеру нужно писать запросы типа https://2gis.ru/moscow/search/Поесть
Можно ли как нибудь написать запросы чтобы вытащить всю Москву?
Скачал версию для Windows: Parser2GIS.exe
У меня установлена ОС Windows 7 x64, и хром тоже установлен.
При запуске пишет системная ошибка, отсутствует файл api-ms-win-core-path-l1-1-0.dll,
затем сразу следующая ошибка: не найдет модуль python310.dll
Для работы написано, что требуется только: "Для работы парсера необходимо установить браузер Google Chrome."
Все таки, что еще нужно установить или обновите инструкцию к установке, пожалуйста.
Здравствуйте. Спасибо за вашу работу. Можно ли загрузить парсер для работы на сервере?
Может что-то доустановить нужно?? пробовал по разному (с рубриками, без, с запросом...) - всё время такая ошибка.
Во время запуска в соседнем окне открывается Хром, но там ничего не происходит, правда есть ошибка на ключ запуска.
постарался в одном скрине все вводные показать:
при этом файл .csv создаётся, но пустой, в нём только названия полей.
пробовал предыдущий ваш релиз запускать, такой же результат.
спасибо.
URL https://2gis.ru/nalchik/search/Парковка/filters/sort=name
почему не сохраняется информация о вместимости - количество мест
например https://2gis.ru/nalchik/search/%D0%BF%D0%B0%D1%80%D0%BA%D0%BE%D0%B2%D0%BA%D0%B8/geo/70030076167674212/43.604498%2C43.480896?m=43.602641%2C43.48471%2F14.88
Спасибо.
Пожалуйста, дополните возможностью скачивать географические объекты?
Например Озера, Горы, Пляжи и т. д.
Достаточно одной точкой и со сбором статистики по аналогии с существующим вариантом парсинга организаций.
Буду признателен!!!
Приложение - пушка! Правда не нашел возможности задать масштаб в настройках, насколько я понимаю, сейчас браузер открывает карту города с какими-то окрестностями по умолчанию. От чего зависит масштаб (или увеличение) карты не очень понятно, но по умолчанию на карту не всегда входят окрестные населенные пункты и города-сателлиты, которых нет в списке. Можно попробовать изменить масштаб карты при уже запущенном парсере, иногда это срабатывает: сначала мне показывало 186 мест, после уменьшения уменьшения масштаба 802, сейчас парсится 382 место. Но при таком подходе иногда вылетает:
12/03/2023 15:15:22.637 | ERROR | Ошибка во время работы парсера.
Traceback (most recent call last):
File "/home/user/.local/lib/python3.10/site-packages/parser_2gis/runner/gui.py", line 69, in run
self._parser.parse(writer)
File "/home/user/.local/lib/python3.10/site-packages/parser_2gis/parser/parsers/main.py", line 208, in parse
self._chrome_remote.perform_click(link)
File "/home/user/.local/lib/python3.10/site-packages/parser_2gis/chrome/remote.py", line 356, in perform_click
resolved_node = self._chrome_tab.DOM.resolveNode(backendNodeId=dom_node.backend_id)
File "/home/user/.local/lib/python3.10/site-packages/pychrome/tab.py", line 177, in call_method
raise CallMethodException("calling method: %s error: %s" % (_method, result['error']['message']))
pychrome.exceptions.CallMethodException: calling method: DOM.resolveNode error: Node with given id does not belong to the document
12/03/2023 15:15:22.643 | INFO | Парсинг ссылки завершён.
12/03/2023 15:15:22.722 | INFO | Удаление пустых колонок CSV.
12/03/2023 15:15:22.731 | INFO | Удаление повторяющихся записей CSV.
12/03/2023 15:15:22.733 | INFO | Парсинг завершён.
Можно ли как-то более контролируемо задать масштаб или увеличение в настройках? Насколько я понимаю, увеличение - это цифра после слэша в параметре m
запроса, например, https://2gis.ru/novosibirsk/search/аптеки?m=82.942781,55.017395/9
.
Добрый день, как я понимаю вопрос нехватки оперативка связан с тем что парсер забирает все данные каждой организации, а можно ли как то его ограничить по выкачиванию данных, например
В зависимостях проекта лежит pydantic>=1.9.0
На версии pydantic > 2.0.0 вылетают разные ошибки.
Необходимо зафиксировать более четкую версию
Здравствуйте!
Подскажите, пожалуйста, а как можно парсить автобусные остановки?
Я в поисковике Вашего приложения вбиваю "остановка" без рубрики, он находит 1000+ остановок, но, к сожалению, не начинает их парсить. Подскажите, как можно исправить это?
Заранее благодарю!
Exception in thread Thread-10:
Traceback (most recent call last):
File "threading.py", line 932, in _bootstrap_inner
File "threading.py", line 870, in run
File "pychrome/tab.py", line 122, in _recv_loop
File "json/init.py", line 357, in loads
File "json/decoder.py", line 337, in decode
File "json/decoder.py", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
В докер установил google chrome, и версия все корректно показывает. Но при запуске парсинга разные ошибки выходить:
1)
Ошибка во время работы парсера.
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/parser_2gis/runner/cli.py", line 29, in start
parser.parse(writer)
File "/usr/local/lib/python3.9/site-packages/parser_2gis/parser/parsers/main.py", line 196, in parse
self._wait_requests_finished()
File "/usr/local/lib/python3.9/site-packages/parser_2gis/common.py", line 64, in inner
raise TimeoutError(func)
TimeoutError: <function MainParser._wait_requests_finished at 0x7f13c20e2c10>
Настроечные параметры передаю вот такие:
listUrls=['https://2gis.kz/taraz/search/%D0%90%D0%BF%D1%82%D0%B5%D0%BA%D0%B8']
binary_path=PosixPath('/usr/bin/google-chrome-stable') start_maximized=False headless=False disable_images=True silent_browser=True memory_limit=1400
Можно ли узнать в чем именно проблема?
parser-2gis запускаю через cli в python скрипт.:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.