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