使用JS和Selenium更改Python中元素的值

2024-09-30 00:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,首先,我不想打扰这里的任何人,我对编码相当陌生,我很清楚,在这些论坛上提问应该是你最后一个去的地方,只有在你搜索了一段时间之后。无论如何,我有个问题。我尝试将2captcha用于python web抓取自动化。当我运行脚本时,我从2captcha获得了captcha令牌,在他们的API文档中,他们说,我必须将令牌放入元素的值中,其中包含fc令牌(屏幕截图)

Screen Shot of the API instruction of 2 captcha

现在,我想将令牌放入html代码的value=”“,然后提交

这就是我迄今为止所尝试的:

    ## Gets the captcha Token
time.sleep(15)
url=str(web.current_url)
solver = TwoCaptcha(APIKEY)

try:
    result = solver.funcaptcha(sitekey='B7D8911C-5CC8-A9A3-35B0-554ACEE604DA',
                               url=url,
                               surl='https://client-api.arkoselabs.com')
except Exception as e:
    sys.exit(e)

print(result['code'])
## The Captcha Token
token= result['code']

time.sleep(10)

##Switching to the right Iframe 
web.switch_to.frame('enforcementFrame')

##Here Im trying to change the value of the Element "FunCaptcha-Token" with JS
web.execute_script('''
  let {token} = arguments
  document.querySelector('FunCaptcha-Token').value = token
''', token)

现在,当我运行脚本时,我得到了令牌,因此2captcha部分应该可以工作,但是Python中的JS部分不工作。这就是我得到的错误代码:

KeyError:'document.getElementById(“FunCaptcha令牌”).value=87260ba9ceb681253.3489941501 | r=us ea[…]继续标记

现在我将添加HTML代码

<input type="hidden" id="FunCaptcha-Token" name="fc-token" value="91560ba8aabd2a839.9381249805|r=eu-west-1|metabgclr=%23ffffff|maintxtclr=%231B1B1B|mainbgclr=%23ffffff|guitextcolor=%23747474|metaiconclr=%23757575|meta=7|lang=de|pk=B7D8911C-5CC8-A9A3-35B0-554ACEE604DA|at=40|ht=1|atp=2|cdn_url=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-eu-west-1.arkoselabs.com|surl=https%3A%2F%2Fclient-api.arkoselabs.com">

HTML Code with the element selected

对不起,我发了这么长的帖子,我提前向你表示感谢


Tags: theto脚本comtokenapiweburl
1条回答
网友
1楼 · 发布于 2024-09-30 00:26:17

它应该是这样的:

driver.execute_script('''
  let {token} = arguments
  document.querySelector('#FunCaptcha-Token').value = token
''', token)

然后您要提交表单或运行回调

相关问题 更多 >

    热门问题