htmlunit抓取动态网页(Java环境下的一下配置实现思路 )

优采云 发布时间: 2022-03-08 14:17

  htmlunit抓取动态网页(Java环境下的一下配置实现思路

)

  爬取网页数据时,传统的jsoup方案只能对静态页面有效,而一些网页数据往往是由js生成的,此时就需要其他的方案了。

  第一个思路是分析js程序,再次爬取js请求,适合爬取特定页面,但要实现不同目标url的通用性比较麻烦。

  第二种思路,也比较成熟,就是使用第三方驱动渲染页面,然后下载。这是第二个实现思路。

  Selenium 是一个模拟浏览器的自动化测试工具。它提供了一组 API 来与真正的浏览器内核交互。

  Java环境下的maven配置如下:

  

org.seleniumhq.selenium

selenium-java

2.46.0

  第三方驱动主要有IEDriver、FirefoxDriver、ChromeDriver、HtmlUnitDriver。

  htmlUnit 也是一个自动化测试的工具。您可以使用 HtmlUnit 来模拟浏览器运行并获取执行的 html 页面。其中,HtmlUnitDriver是对htmlUnit的封装。

  由于htmlunit对js解析的支持有限,在实际项目中并不常用。

  以chrome为例,下载对应的驱动:.

  下载驱动时,需要注意与selenium版本的兼容性。可能有例外。一般来说,最好下载最新版本。

  在运行程序之前,一定要指定驱动位置,比如在Windows下

  System.getProperties().setProperty("webdriver.chrome.driver",

"D:\\chromedriver\\chromedriver.exe");

  获取整个页面

   public static void testChromeDriver() {

System.getProperties().setProperty("webdriver.chrome.driver",

"D:\\chromedriver\\chromedriver.exe");

WebDriver webDriver = new ChromeDriver();

webDriver.get("http://picture.youth.cn/qtdb/201506/t20150625_6789707.htm");

String responseBody = webDriver.getPageSource();

System.out.println(responseBody);

webDriver.close();

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线