相关疑难解决方法(0)

Google reCAPTCHA v2如何在幕后工作?

这篇文章是指Google ReCaptcha v2(不是最新版本)

最近谷歌推出了一个简化的"验证码"验证系统(视频),使用户只需点击它即可通过"验证码".

但是,如何通过点击将机器人与人区分开来?

根据这个答案,(假设一个类似的实现),首先"recaptcha"生成一个隐藏的密钥,并将其附加到一个隐藏的输入元素,并懒惰地呈现一个复选框(不是一个实际的复选框,input但a div)具有相同的密钥,单击时,向Google后端服务器发送异步请求(XHR),将其标记为有效的验证密钥(即在提交表单时必须验证的密钥).

但是为什么机器人不能自动点击(至少是基于浏览器的机器人)?

这怎么可行?

captcha recaptcha

296
推荐指数
3
解决办法
12万
查看次数

使用 puppeteer 绕过 Cloudflare

我正在尝试使用 puppeteer 抓取某个网站的一些初创公司数据,当我尝试导航到下一页时,cloudflare 等待屏幕出现并中断抓取。我尝试更改IP,但还是一样。有没有办法用 puppeteer 绕过它。

(async () => {

  const browser = await puppeteer.launch({
    headless: false,
    defaultViewport: null,
  });

  const page = await browser.newPage();

  page.setDefaultNavigationTimeout(0);

  let links = [];

  // initial page

  await page.goto(`https://www.startupranking.com/top/india`, {
    waitUntil: "networkidle0",
  });

  // looping through the url to different pages

  for (let i = 2; i <= 7; i++) {
    if (i === 3) {
      console.log("waiting");

      await page.waitFor(20000);

      console.log("waited");
    }

    const onPageLinks = await page.$$eval("tr .name a", (arr) =>
      arr.map((cur) => cur.href)
    ); …
Run Code Online (Sandbox Code Playgroud)

captcha bots cloudflare google-chrome-headless puppeteer

8
推荐指数
0
解决办法
2万
查看次数

如何使用 Puppeteer 从 iframe 检索 reCAPTCHA 令牌?

我正在编写一个机器人,在任务完成后我试图用它来抓取 reCAPTCHA 令牌。我正在尝试使用:

await page.evaluate(() => document.getElementById('recaptcha-token').value)
Run Code Online (Sandbox Code Playgroud)

验证码加载到页面后,但是每次我都会收到相同的错误:Uncaught (in promise) Error: Evaluation failed: TypeError: Cannot read property 'value' of null

我认为此错误部分是由于我尝试获取的元素属于隐藏类型而引起的:

<input type="hidden" id="recaptcha-token value="[very long string of letters and numbers]">
Run Code Online (Sandbox Code Playgroud)

我该如何绕过这个?

javascript screen-scraping recaptcha electron puppeteer

1
推荐指数
1
解决办法
4811
查看次数