Нужно получить ссылки с поисковой выдачи Яндекс.
Говорю сразу - про Яндекс.XML знаю, но нужна именно "живая" выдача
Все прекрасно, пока не появляется капча.
PROXY_HEADERS = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-US,en;q=0.8,uk;q=0.6,ru;q=0.4',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Upgrade-Insecure-Requests': '1'
}
s = requests.Session()
s.headers = PROXY_HEADERS
is_captcha = True
while is_captcha:
current_url = "https://yandex.ru/search/?text={}&p={}".format(search, start)
page = s.get(current_url)
parsed = html_parser.document_fromstring(page.text)
# Если есть капча
if parsed.cssselect('.form__captcha'):
is_captcha = True
captcha_src = parsed.cssselect('.form__captcha')[0].get('src')
solved_captcha = get_solved_captcha(captcha_src, s) # капча разгадывается верно - проверял
key = parsed.cssselect('.form__key')[0].get('value')
retpath = parsed.cssselect('.form__retpath')[0].get('value')
c_url = "http://yandex.ru/checkcaptcha"
req_c = s.get(c_url, params={'key': key, 'retpath': retpath, 'rep': solved_captcha})
# И тут в ответ всегда получаю 200 ответ и страницу ввода капчи еще раз.
else:
is_captcha = False
Кто имел с этим дело? Подскажите, что я делаю не так(