极乌客

一个个人的小博客。

Javascript使用Selenium

因为一些特殊原因,有一些网页用常规爬虫手段特别难爬,就常用到Selenium,由于我是做微信小程序开发的比较多,所以尽可能都是用Javascript

恰好Selenium提供了Javascript的使用文档,而简单易懂的使用案例局限性比较大,网上的帖子大多都是Python的

远程调用

部署远程服务器

在服务器上使用下面的命令启动容器,这里使用的是Chrome,如果要使用FireFox,Safari,Edge等其他浏览器去GitHub上找就行了这里是链接

$ docker run -d -p 4444:4444 --shm-size=2g selenium/standalone-chrome

Javascript使用

首先需要安装selenium-webdriver,使用npm install selenium-webdriver即可

const {
  Builder,
  Capabilities,
  By,
  until
} = require('selenium-webdriver');

const capabilities = Capabilities.chrome();

// ------
// 如果要忽略SSL问题加上这一行
// capabilities.setAcceptInsecureCerts(true);
// ------

const driver = new Builder()
    .usingServer("http://××.××.××.××:4444") // 服务器地址
    .withCapabilities(capabilities)
    .build();

await driver.get('目标网址');

// 等待指定元素加载完成 / 出现
await driver.wait(until.elementLocated(By.id('id')), 10000);

// 查找指定元素
const input = driver.findElement(By.className('input'));

// 往指定元素输入内容
await input.sendKeys('text');

// 点击某个元素
driver.findElement(By.className('submit')).click();

// 获得指定名称的Cookie
await driver.manage().getCookie('Cookie');

// 关闭
await driver.quit();

大概我用到的就是上面所写的,具体更加详细的文档点这里,上面只是列举一下常用的代码,这个文档翻着挺麻烦的,总结常用的会节省一些时间。

小程序长列表性能优化

上一篇

小程序云开发数据库/Mongodb时间戳转时间

下一篇
评论
发表评论 说点什么
还没有评论