CNode

用selenium控制已打开的浏览器

分享
Llinliny发布于6 年前最后回复6 年前3 回复3872 浏览0 收藏

今天接了一个需求,要求去操作一个已打开的浏览器,执行相关的自动化脚本,原理则是根据调试端口通过webdriver调试浏览器。 这里面比较特别的是它使用的是基于chromium的非常规浏览器,需要手动调用浏览器驱动。 在这里分享一下,希望对未来踩坑的同学有帮助,顺便请教一下用puppeteer是否可以完成这些?

const webdriver = require('selenium-webdriver')
const chrome = require('selenium-webdriver/chrome')
const path = require('path')

async function main() {
    const options = new chrome.Options()
    options.options_["debuggerAddress"] = "127.0.0.1:8800";

    const service = new chrome.ServiceBuilder(path.join(__dirname, './chromedriver.exe')).build()
    chrome.setDefaultService(service)

    const driver = new webdriver.Builder()
        .setChromeOptions(options)
        .withCapabilities(webdriver.Capabilities.chrome())
        .build()

    await driver.get('https://www.baidu.com');
}

main()
查看回复

回复 (3)

S
spnt#1·6 年前

puppeteer 是更好的一个方案, 我的一个开源项目是用这个做的, https://github.com/zuoyanart/sparender

H
hyj1991#2·6 年前
引用 spntpuppeteer 是更好的一个方案, 我的一个开源项目是用这个做的, https://github.com/zuoyanart/sparender

@spnt 这个思路蛮有意思的,不过 CDN 怎么解决呢?CDN 没法过滤爬虫请求让回源吧

S
spnt#3·6 年前
引用 hyj1991@spnt 这个思路蛮有意思的,不过 CDN 怎么解决呢?CDN 没法过滤爬虫请求让回源吧

@hyj1991 我刚看了七牛,七牛没有这个功能, 也就是说, 前端代码部署到七牛之类的, 就没办法根据蜘蛛做页面渲染了

参与回复
登录后即可参与回复。登录