webdriver原理,用油猴脚本模拟webdriver过爬虫检测

本文介绍了WebDriver的工作原理,它启动浏览器并作为远程服务器进行通信。然后,提出了一个使用油猴脚本模拟WebDriver的方法,通过启动WebSocket服务并在浏览器端注入脚本来实现控制。服务端使用Node.js接收和发送指令,客户端脚本负责页面交互,如获取页面HTML和执行页面跳转。
摘要由CSDN通过智能技术生成

webdriver原理,用油猴脚本模拟webdriver过爬虫检测

webdriver原理
WebDriver 启动目标浏览器,并绑定到指定端口。该启动的浏览器实例,做为 web driver 的 remoteserver。
Client 端通过 CommandExcuter 发送 HTTPRequest 给 remote server 的侦听端口(通信协议: thewebriver wire protocol)
Remote server 需要依赖原生的浏览器组件(如:IEDriverServer.exe、chromedriver.exe),来转化转化浏览器的 native 调用。

使用油猴脚本模拟的思路

  1. 首先需要启动一个webscoket服务 ,作为浏览器控制端
    这里的服务端选择 nodejs 实现
    简单的写一下接受消息的逻辑
    init表示初始化连接,close表示关闭
    这里导出两个函数用来读取当前消息,和webscoket连接用于与客户端交互
const WebSocketServer = require('ws').Server;
const wss1 = new WebSocketServer({ port: 56666 });

function getConn() {
    return conn000;
}
function getMsg() {
    var msg_0 = msg;
    msg = void 0;
    return msg_0;

}
wss1.on('connection', function (conn, request, client) {
    // 接收客户端返回的数据
    conn.on('message', function message(data) {
        var data1 = data.toString();
        msg = JSON.parse(data1);
        if (msg.type == 'init') {
            conn000 = conn;
        }
        //一般不会用到的
        if (msg.type == 'close') {
            conn.close();
            conn = void 0;
        }
    });
    //客户端关闭连接
    conn.on(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0x墨小龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值