【问题标题】:How to get challenge key from a target website using geetest captcha如何使用geetest验证码从目标网站获取挑战密钥
【发布时间】:2022-06-15 02:11:54
【问题描述】:

所以我正在使用 puppeteer 从目标网站上抓取数据。 目标网站使用geetest验证码,反验证码,我使用2capcta服务, 在他们的文档中,提到我们每次都需要获取挑战密钥。

从问题开始,目标网站在下面嵌入了challenge key

<Iframe>
<Html>
<head>
<script>

当通过 DOM 元素访问 iframe 时会出现 CORS 错误。

我已经尝试了另一种方法,也可以在下面的刮刀框链接上找到

https://scraperbox.com/blog/solving-a-geetest-slider-captcha-with-puppeteer

我没有找到选择器'[aria-label="Click to verify"]'

它尝试了codegrepper方式链接如下

https://www.codegrepper.com/code-examples/whatever/puppeteer+get+network+requests

把我扔到 console.error() 上。

任何帮助将不胜感激绕过geetest验证码 如果我的问题不清楚,也请告诉我。

【问题讨论】:

  • 找不到的选择器来自Geetest演示站点。您所指的目标网站很可能有所不同。预计会出现 CORS 错误,否则这将是一个巨大的安全漏洞。不过,没有什么能阻止您直接访问&lt;iframe&gt; 链接。您可以在此处找到有关使用 puppeteer&lt;iframe&gt; 的更多信息:stackoverflow.com/questions/46529201/…

标签: node.js web-scraping puppeteer captcha apify


【解决方案1】:

非常感谢您的回答, 所以有了上面这位先生的回应,最终的解决方案是

当您通过 puppeteer 加载页面时

   await page.waitForSelector('iframe');

这将等到加载 iframe 的时间,现在对我来说目标网站已经使用带有哈希链接的 iframe 来访问它

const elementHandle = await page.$('iframe');
const frame = await elementHandle.contentFrame();

现在框架将可以访问您的 iframe 页面,因此您可以像使用其余部分一样

 await frame.waitForSelector("your selector")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多