спарсить контакты из тату студии
Цель - спарсить контакты всех тату студий из яндекс карт. Но пока тренируюсь на одной конкретной ссылке на студию. https://yandex.ru/maps/-/CDfQyIK- . Делаю через chrome browser. Chromedriver установлен нужной версии и path правильно указан. все нужные библиотеки для python установлены.
import os
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
def find_contacts(html_content):
soup = BeautifulSoup(html_content, 'html.parser')
# Здесь пропишите логику для поиска контактов на странице
# Например, найдем все элементы <a> с классом "contact"
contacts = soup.find_all('a', class_='contact')
return [contact.text.strip() for contact in contacts]
def parse_organization_contacts(url, download_path):
chrome_path = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
chromedriver_path = "C:\\chromedriver\\chromedriver_win32\\chromedriver.exe"
options = webdriver.ChromeOptions()
options.binary_location = chrome_path
options.add_argument("--headless") # Добавляем опцию для запуска в скрытом режиме
service = ChromeService(executable_path=chromedriver_path)
driver = webdriver.Chrome(service=service, options=options)
try:
driver.get(url)
# Дождемся загрузки контактов на странице (предположим, они будут в элементах с классом "contact")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'contact')))
page_source = driver.page_source
contacts = find_contacts(page_source)
with open(download_path, 'w', encoding='utf-8') as file:
for contact in contacts:
file.write(contact + '\n')
print(f"Контакты успешно сохранены в файл: {download_path}")
except Exception as e:
print(f"Произошла ошибка: {e}")
finally:
driver.quit()
organization_url = 'https://yandex.ru/maps/-/CDbD4O7Z' # Замените на нужный URL
download_path = os.path.join('C:\\work', 'contacts.txt') # Укажите путь для сохранения файла с контактами
parse_organization_contacts(organization_url, download_path)
Вот ошибка в командной строке
c:\work>python parse_contacts.py
DevTools listening on ws://127.0.0.1:61496/devtools/browser/1f2e8e1f-b45b-4323-91a5-65852e0a2624
[0524/114702.854:INFO:CONSOLE(1)] "It is recommended that a robustness level be specified. Not specifying the robustness level could result in unexpected behavior.", source: https://yandex.ru/captchapgrd (1)
Произошла ошибка: Message:
Stacktrace:
GetHandleVerifier [0x00A80B13+45059]
(No symbol) [0x00A168A4]
(No symbol) [0x009114FF]
(No symbol) [0x0095205C]
(No symbol) [0x0095210B]
(No symbol) [0x0098E022]
(No symbol) [0x00972DA4]
(No symbol) [0x0098BF64]
(No symbol) [0x00972AF6]
(No symbol) [0x00946948]
(No symbol) [0x009474CD]
GetHandleVerifier [0x00D3F9A3+2924179]
GetHandleVerifier [0x00D936ED+3267549]
GetHandleVerifier [0x00B04474+584036]
GetHandleVerifier [0x00B0B1DC+612044]
(No symbol) [0x00A1FAB4]
(No symbol) [0x00A1C358]
(No symbol) [0x00A1C4F7]
(No symbol) [0x00A0E46E]
BaseThreadInitThunk [0x760C05C9+25]
RtlGetAppContainerNamedObjectPath [0x778078BD+237]
RtlGetAppContainerNamedObjectPath [0x7780788D+189]
По-моему он намекает на капчу. Но разве может быть капча в таком вопросе? Если да, нужно ли мне платить за сервис по разгадыванию капчи, или можно обойтись бесплатным функционалом 2captcha например? Спасибо за помощь=)