Skip to main content

01 获取动态网页的数据

1 什么是动态网页?要通过方式去获取渲染后的数据呢?

动态网页是指在互联上访问一个http页面时,页面的内容会由javascript在浏览器中进行动态处理。这就是动态网页了。 想要从动态页面中找出特定的数据,要么分析网页是怎么生成的,逆向找出数据出来,要么借助selenium这种浏览器驱动还操控 浏览器渲染完成后把数据读取出来。 前者要逆向分析,跟网站站长直接对决,优点是性能好。后者是,直接让浏览器渲染后直接读取,缺点 是性能差,速度慢。

2 使用nodejs通过selenium读取chrome的动态网页数据

2.1 准备工作

  • 要有nodejs环境和npmyarn工具
  • 查看chrome的版本号并到chrome驱动中找到对应的版本号的驱动器,并下载下来

2.2 配置下载下来的chromedriver的驱动器到环境变量中

selenium是基于chromedriver来操作chrome,需要把它配置到PATH环境变量中,这样selenium才能发现它,从而操作chrome

2.3 node代码示例

index.js
// 这是官方示例
const {Builder, By, Key, until} = require('selenium-webdriver');

(async function example() {
let driver = await new Builder().forBrowser('firefox').build();
try {
await driver.get('http://www.google.com/ncr');
await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
} finally {
await driver.quit();
}
})();

运行下

$ node index.js

参考资料