动态网页抓取( 可支持的【真实】驱动程序介绍(一))
优采云 发布时间: 2021-10-01 07:05动态网页抓取(
可支持的【真实】驱动程序介绍(一))
#抓取内容
WebDriver driver = new HtmlUnitDriver(false);
driver.get(url);
String html = driver.getPageSource();
#如何想等待一会元素渲染完毕
driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
#进行百度搜索
public static void doSearch(String keyword) {
final String url = "http://www.baidu.com";
WebDriver driver = new HtmlUnitDriver(false);
driver.get(url);
driver.findElement(By.id("kw")).sendKeys(keyword);
Actions action = new Actions(driver);
action.sendKeys(Keys.ENTER).perform();
System.out.println(driver.getPageSource());
}
1 Selenium 支持的 [Real] 浏览器驱动程序:
PC 驱动程序:firefox、safari、即 chrome、operadriver
移动端驱动:Windows Phone、Selendroid、ios-driver、Appium支持iphone、ipad、android、FirefoxOS【第三方】
safari 和 ff 都以插件的形式驱动浏览器本身;即chrome通过二进制文件驱动浏览器本身;
这些驱动都是直接启动,通过调用浏览器底层接口来驱动浏览器,因此具有最真实的用户场景模拟,主要用于Web兼容性测试。
2 selenium 支持的【伪浏览器】驱动:
HtmlUnit、PhantomJS
它们并不是真正在浏览器中,也没有 GUI,而是类似浏览器的程序,支持 html 和 js 等解析能力;这些程序不渲染网页的显示内容,但支持页面元素的搜索和JS等的执行;由于不进行CSS和GUI渲染,运行效率会比真正的浏览器快很多,主要用于功能测试。htmlunit是Java实现的类似浏览器的程序,收录在selenium服务器中,无需驱动即可直接实例化;它的js解析引擎是Rhino。