@ParenPacan

Как обойти каптчу гугл в парсере?

Здравствуйте, есть код, который парсит выдачу гугл и записывает, есть ли страница в поиске (в индексе) если нет то (не в индексе). Столкнулся с ситуацией, что парсер залез в каптчу и дальнейшие данные парсинга неверны. Подскажите как можно обойти каптчу? пробовал никак не получается. В python я новичек
import requests
import pandas as pd
from concurrent.futures import ThreadPoolExecutor, as_completed
import undetected_chromedriver as webdriver

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
}

options = {
    'muteHttpExceptions': True,
    'followRedirects': False
}

def check_url(url):
    resp = f'https://www.google.ru/search?q=site:{url}'
    response = requests.get(resp, options, headers=headers).text
    if "ничего не найдено" in response:
        return url, "Не в индексе"
    else:
        return url, "В индексе"

def main():
    with open('all-website-url.txt', encoding="utf-8") as f:
        urls = [line.strip() for line in f]

    results = []

    with ThreadPoolExecutor() as executor:
        futures = [executor.submit(check_url, url) for url in urls]
        for future in as_completed(futures):
            url, status = future.result()
            results.append({"URL": url, "Статус": status})
            print(f"{url}: {status}")
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--use_subprocess")

    browser = webdriver.Chrome(options=chrome_options)
    browser.get('https://www.google.ru/')
    browser.save_screenshot('screenshot.png')
    df = pd.DataFrame(results)
    df.to_excel('./googlecheckindex.xlsx', index=False)

if __name__ == '__main__':
    main()
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
В Google сидит целая толпа выпускников всяких там MIT и Беркли, которые целыми днями разрабатывают и совершенствуют способы выявления парсинга и защиты от него. Им помогает толпа индусов, которая нон-стоп ищет способы обхода защиты, а потому защиту сразу исправляют, как только в публичном доступе появляется эффективный и экономически целесообразный способ её обхода. Так что если кратко, действенный ответ вам никто не даст, а чтобы найти его самому, придётся здорово напрячь мозги.
Ответ написан
@Everything_is_bad
В python я новичек
новички неспособны на подобное. Как обходить писать 100500 раз, это комплекс мер и не факт что он сработает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы