Найти - Пользователи
Полная версия: Помогите. Парсинг сайта не могу правильно установить параметры request. (recaptcha, антикапча)
Начало » Python для экспертов » Помогите. Парсинг сайта не могу правильно установить параметры request. (recaptcha, антикапча)
1
gtlhbkkj
запрос в таком виде не возвращает результатов поиска

 def fg_list_bot(_name_element, _output_file):
    print(_name_element)
    s = requests.Session()
    _data = {"searchValue": _name_element,"searchSubmit":"submit[s][/s]"}
    _headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"}  
    r = requests.post(_url, data=_data, headers = _headers)
    with open(_output_file, "w", encoding='utf-8') as f:
        f.write(r.text)
    print(r.status_code)
#
# code beginn
#
import requests
from bs4 import BeautifulSoup
_url = "https://hifi-filter.com/en/catalog/recherche-equivalence.html"
_output_file = "IDLE_HIFI.html"
_name_element = "pi3115"   
fg_list_bot(_name_element, _output_file)


когда добавляю капчу, то какое-то время, пока капча действительна, программа работает, потом через какое-то время перестает возвращать результаты также как и предыдущий вариант

 def fg_list_bot(_name_element, _output_file):
    print(_name_element)
    s = requests.Session()
_data = {"searchValue": _name_element,"searchSubmit":"submit",
             "g-recaptcha-response":"03AOLTBLSGgHKYeeU_WgH-tOhoUV8UXkBejUCAhxgfuyBKE0QA0PeDOcTlrhTd0zlhTyCVIjjkZrfxWBnBfd6R5_G_XU15ZN8s3nqHljYjvXMHpijXj4TZUIu0t_hBHu65rJb7op28Iz1EplJxP0lbfXJbm3Mif-O6jg-eXb-v_spSH4W2aW4nSvMMrHGy-7iJpOns4O-Ff-P2kit_E7jbrKF6jakyR1f0FlcLGFHAPNaf0w2BhnXvxlFmo6ghDR58jqJmWiRRj0BK8nAMIw0FVI4J1j3hoWDxxNX6bnHXxw-mQb-FEhwM4oHMVCvj-NqzG2gX__H9AXuSU7Ehnl9YwtMi3ssW6V4FuEmVIwpZDPy-nIfSdi7NyuycZj6tgLFyKfefj91oaWCNoNqH48I0MfE6zkfim7KlTfbG0LxGIFpH4MMH1_iNunJ0LJU9s_o8jUA3HP5bL-1jPVAbFC6pnxe07GmyKaSutQ"}    _headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"}  
    r = requests.post(_url, data=_data, headers = _headers)
    with open(_output_file, "w", encoding='utf-8') as f:
        f.write(r.text)
    print(r.status_code)
#
# code beginn
#
import requests
from bs4 import BeautifulSoup
_url = "https://hifi-filter.com/en/catalog/recherche-equivalence.html"
_output_file = "IDLE_HIFI.html"
_name_element = "pi3115"   
fg_list_bot(_name_element, _output_file)


gtlhbkkj
Зарегистрировался на сервисе https://anti-captcha.com/mainpage, решил одноразово проблему через их онлайн форму DASHBOARD - получил g-recaptcha-response, вставил в свой питон код, всё заработало.

А в фоновом режиме (из программы) получать рекапчу у меня не получилось.
Примеры у них только на php, C, Java, NodeJS. Примера на питоне нету.

Установил библиотеку python3-anticaptcha, скачал пример, установил свои параметры. При запуске примера, он засыпает и минут через 2-3 выдает этот ответ
 {'errorId': 12, 'errorCode': 'ERROR_CAPTCHA_UNSOLVABLE', 'errorDescription': 'Captcha could not be solved by 5 different workers', 'taskId': 291177887}

Есть идеи почему не работает?
Вот пример с моего линка выше
 import asyncio
from python3_anticaptcha import ReCaptchaV3TaskProxyless
ANTICAPTCHA_KEY = "ae23fffcfaa29b170e3843e3a486ef19"
"""
WARNING:
`minScore` param can be only in [0.3, 0.5, 0.7]
"""
# Пример показывает работу антикапчи с ReCaptcha v3.
# Это метод для работы без прокси
result = ReCaptchaV3TaskProxyless.ReCaptchaV3TaskProxyless(
    anticaptcha_key=ANTICAPTCHA_KEY
).captcha_handler(
    websiteURL="https://some_page_link",
    websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    minScore=0.3,
    pageAction="login",
)
print(result)
# contextmanager
with ReCaptchaV3TaskProxyless.ReCaptchaV3TaskProxyless(
    anticaptcha_key=ANTICAPTCHA_KEY
) as recaptcha:
    response = recaptcha.captcha_handler(
        websiteURL="https://some_page_link",
        websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
        minScore=0.3,
        pageAction="login",
    )
print(response)
# Асинхронный пример
async def run():
    try:
        result = await ReCaptchaV3TaskProxyless.aioReCaptchaV3TaskProxyless(
            anticaptcha_key=ANTICAPTCHA_KEY
        ).captcha_handler(
            websiteURL="https://some_page_link",
            websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
            minScore=0.3,
            pageAction="login",
        )
        print(result)
    except Exception as err:
        print(err)
if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())
    loop.close()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB