#python #node.js #selenium #web-scraping #puppeteer
#python #node.js #селен #очистка веб-страниц #кукловод
Вопрос:
Я пишу бота, с помощью которого я могу создавать учетные записи на нескольких страницах.
Я должен разработать свой алгоритм anticaptcha (на основе аудио — уже сделано).
Я попытался сделать это с помощью python selenium, но после нажатия кнопки recaptcha я получил следующее сообщение We're sorry, but your computer or network may be sending automated queries...
Теперь я пытаюсь сделать это с помощью puppeteer. Вот пример кода:
const puppeteer = require('puppeteer-extra')
const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin())
let browser = puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage()
await page.goto('https://nubela.co/proxycurl/')
const frameHandle = await page.$("iframe");
const frame = await frameHandle.contentFrame();
await frame.click('.recaptcha-checkbox-border')
await page.screenshot({ path: 'res.png', fullPage: true })
await browser.close()
})
Я получаю «TypeError: не удается прочитать свойство ‘click’ из null».
Я пытался перебирать кадры, но это тоже не работает…
Комментарии:
1. Вы не хотите нажимать на этот iframe, все, что вам нужно для его решения, находится в основном фрейме.
Ответ №1:
итак, вот несколько забавных фактов:
-
recaptcha — это намеренно то, что вы не должны уметь автоматизировать. Эта вещь существует только для 1 и 1 цели — предотвратить любую форму автоматизации
-
Тем не менее, вы можете коснуться компонентов внутри iframe, выполнив пользовательский JS в вашем браузере. Вот как вы можете указать puppeteer запускать пользовательский JS в вашем браузере: https://dev.to/benjaminmock/executing-javascript-in-the-page-context-of-puppeteer-fp8
и вот как управлять объектом внутри фрейма из JS: https://www.w3schools.com/howto/howto_js_element_iframe.asp
итак, вам нужно будет создать пользовательский js-скрипт браузера, который нажимает на вашу кнопку в iframe, и заставить puppeteer выполнить его
Ответ №2:
На сайте, который вы ввели, есть Cloudflare-UAM! Поскольку в вашем скрипте нет обхода этой защиты, браузер сталкивается с защитой, и действие с капчей выдается как ошибка, потому что на странице проверки нет Recaptcha.