繁体   English   中英

避免使用puppeteer和nodeJS进行人机验证

Avoiding captcha with puppeteer and nodeJS

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试从网站上抓取一些内容,我认为captha正在避免执行此任务。 我正在使用userAgent,但仍然无法正常工作。 这是代码:

// helper.js

const puppeteer = require('puppeteer');
const userAgent = require('user-agents');

async function getDynamicPageHtml(url) {
    try {
        const browser = await puppeteer.launch();
        const page = await browser.newPage();
        await page.setUserAgent(userAgent.toString());

        await page.goto(url, { waitUntil: 'networkidle0' });
        const html = await page.evaluate(() => document.querySelector('*').outerHTML);

        await browser.close();
        return html;
    } catch (err) {
        console.error(err);
        return null;
    }
}
module.exports = {
    getDynamicPageHtml
}

// Idealista.js

const cheerio = require('cheerio');
const browser = require('./helper');

async function getData() {
    const html = await browser.getDynamicPageHtml('https://www.idealista.com/alquiler-habitacion/madrid/chamberi/con-precio-hasta_450,compartido-2-personas/?ordenado-por=fecha-publicacion-desc&ordenado-por=fecha-publicacion-desc');
    console.log(html);
    const $ = cheerio.load(html);
    const announce = $('#main-content > section > article').map((index, element) => {
        return $(element).first().text().trim();
    }).toArray();
    announce.forEach((element, index) => {
        // do stuff
    });
}
module.exports = {
    getData
};

// app.js

const express = require('express');
const idealista = require('./idealista');
const app = express();

app.set('port', process.env.PORT || 3000);
app.use(express.json());
app.use(express.urlencoded({extended: true}))

app.listen(app.get('port'), async () => {
    console.log('server on port ',app.get('port'));
    await idealista.getData();
})

这是调试人偶内容时的输出: 在此处输入图片说明

问题暂未有回复.您可以查看右边的相关问题.
1 使用Puppeteer和Node JS进行Sharepoint身份验证

我无法找到验证用户身份的方法。 当你手动启动Node JS Server时,这工作正常(是的,它的丑陋代码): Sharepoint不知道我的用户数据,所以他们导航到登录页面,在那里我可以填写登录信息,然后移动到我要求的网站。 但在此期间有2个更改:1。此登录页面不再存在,如果找不到 ...

3 如何在jBPM 6中进行人机交互?

我是jbpm的新手,从jbpm 6开始。 我分配了使用jBPM设计流程的任务。 任务详细信息如下:动机:客户注册 步骤1:由A人(可以是接待员)填写客户的详细信息。 步骤2:将详细信息显示给B人(可能是经理)。 步骤3:乙方批准/拒绝客户注册。 步骤4:如果批准:客户已注册; ...

2013-11-12 06:43:00 1 5168   jbpm
6 如何避免“框架分离”错误异步验证或使用 Puppeteer 重定向?

以前的答案为我指明了方向,即如何捕获异步验证错误或重定向。 但在我的场景中,一个iframe开始发挥作用,它让我整天忙碌。 一些指向正确方向的指针会非常有帮助,因为我无法正确理解,即使错误清楚地说明出了什么问题。 场景的: 输入为空。 在 iframe 内单击按钮,并从异步请求返回验证错误 ...

7 使用Bull,Puppeteer,NodeJS和Express进行刮刮作业

我最近在Heroku上建立了一个平台来承载Puppeteer抓取脚本(Express,Node JS)。 在脚本开始花费越来越长的时间之前,效果一直很好。 根据Heroku的文档,任何超过30秒的超时都会使请求超时,并且失败。 解决方法是使用Redis服务器(特别是npm模块Bull )。 我之 ...

8 Twilio环组可以进行人工验证吗?

现在,我用twilio做一个简单的带有多个数字的<Dial><Number/><Number/></Dial> 。 当然,问题是如果我们在<Number>之一上安装了答录机。 有没有一种方法可以同时打扰多个人并让他们按某个字符, ...

9 如何通过字母绘图进行人工验证?

我目前正在研究人工验证过程的新方法。 用户可以在已经给定的字符上绘制两个字符。 我设法显示两个字符,并且只允许通过遮罩视图来触摸这些字符。 现在我的问题是如何检测用户是否正确绘制了字符。 请参阅以下参考图片: 谢谢高级。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM