HtmlUnit是一个“java程序的浏览器”。它为html文档建模,提供了一个API,允许您调用页面、填写表单、点击链接等,就像你在“正常”浏览器里做的一样。他有相当好的JavaScirpt支持(不断改进),甚至可以使用相当复杂的AJAX库,模拟Chrome、Firefox或Internet Explorer,这取决于所使用的配置。他通常用于测试的目的或从web站点检索信息。
下面贴出我在阳光高考中抓取专业的例子,这个例子最主要的特点是模仿浏览器的点击时间,动态的获取数据,其中包括ajax请求的数据:
public static void main(String[] args) throws IOException { /* String url="http://gaokao.chsi.com.cn/zyk/zybk/"; Document doc = Jsoup.connect(url).get(); System.out.println(doc);*/ WebClient webClient = new WebClient(); // 部分js无法加载,导致控制台报错,下面几行代码都是为了让控制台不报错,但是不能从根本上解决问题哟! LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog"); java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF); java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF); webClient.getOptions().setThrowExceptionOnFailing
使用HtmlUnit模拟浏览器爬取数据

HtmlUnit是一个Java浏览器库,能模拟Chrome、Firefox或IE进行网页操作,包括填写表单、点击链接等。其JavaScript支持强大,适用于网页测试和数据抓取。通过HtmlUnit,我们可以模拟点击事件和表单提交,实现动态获取数据,避免封号风险,且易于使用。
最低0.47元/天 解锁文章
1464

被折叠的 条评论
为什么被折叠?



