Open lexburner opened 3 months ago
层级结构如上,验证码所在地址:https://core.particle.network/cloudflare.html?language=en&theme=light&_=0.1.1&siteKey=0x4AAAAAAAaHm6FnzyhhmePw
有什么思路吗,不知道怎么选择这个 iframe 里面的 document
一个取巧的方案是直接 .cf-turnstile-wrapper.click()
一个取巧的方案是直接 .cf-turnstile-wrapper.click()
box = page.ele('.cf-turnstile-wrapper').shadow_root.ele('tag:iframe').ele('tag:body').shadow_root.ele('.cb-i')
page.actions.move_to(box).click() 现在点击都会失败,也许加了其他鼠标轨迹检测,有什么好的办法吗
一个取巧的方案是直接 .cf-turnstile-wrapper.click()
box = page.ele('.cf-turnstile-wrapper').shadow_root.ele('tag:iframe').ele('tag:body').shadow_root.ele('.cb-i') #box.click() page.actions.move_to(box).click() 现在点击都会失败,也许加了其他鼠标轨迹检测,有什么好的办法吗
用drissionpage可以直接绕开cf的人机检测啊
Not works for "Chatgpt.com"
現在只能用pyauto等等...從外部用鼠標點擊。
現在只能用pyauto等等...從外部用鼠標點擊。
How to use pyauto to achieve this , I have done till these steps but after that no idea, can you guide me? wrapper = first_iframe.ele(".cf-turnstile-wrapper") print(1) shadow_root = wrapper.shadow_root print("shadow_root",shadow_root) niframe = shadow_root.ele("tag=iframe", timeout=15)
sleep(8) verify_element = niframe.ele("Verify you are human", timeout=25) print(verify_element)
使用 pyautogui + pyvirtualdisplay 来虚拟可以做到, 项目已经稳定跑了很久 wrapper = page.ele(".main-content") spacer = wrapper.ele(".spacer") div1 = spacer.ele("tag:div") div2 = div1.ele("tag:div")
iframe = div2.shadow_root.ele("tag:iframe", timeout=15)
page.wait(2)
iframeRoot = iframe("tag:body").shadow_root
cbLb = iframeRoot.ele(".cb-lb", timeout=10)
# 获取位置
pos = cbLb.ele("tag:input", timeout=10).rect.screen_click_point
page.wait(2)
# 移动鼠标
pyautogui.moveTo( pos[0], pos[1] + 61, duration=0.5 )
# 点击右键
pyautogui.click()
使用 pyautogui + pyvirtualdisplay 来虚拟可以做到, 项目已经稳定跑了很久 wrapper = page.ele(".main-content") spacer = wrapper.ele(".spacer") div1 = spacer.ele("tag:div") div2 = div1.ele("tag:div")
iframe = div2.shadow_root.ele("tag:iframe", timeout=15) page.wait(2) iframeRoot = iframe("tag:body").shadow_root cbLb = iframeRoot.ele(".cb-lb", timeout=10) # 获取位置 pos = cbLb.ele("tag:input", timeout=10).rect.screen_click_point page.wait(2) # 移动鼠标 pyautogui.moveTo( pos[0], pos[1] + 61, duration=0.5 ) # 点击右键 pyautogui.click()
请问下有完整代码吗?我想在无界面的服务器上运行
在破解 cloudflare 时,感觉可以大致定位到验证码框所在的位置,然后模拟点击 verify by human 即可,如果可以通过坐标直接点击,可以充当 cloudflare 升级过程中的 workaround 方案,现在 cloudflare 一层 shadowroot 套一层 iframe,然后 iframe 里面又套了一层 document,防不胜防啊,如果有其他解决方案,也欢迎讨论