httpunit 抓取网页(没写代码实现获取网页源代码代码模拟按钮的方法)

优采云 发布时间: 2022-01-25 16:11

  httpunit 抓取网页(没写代码实现获取网页源代码代码模拟按钮的方法)

  1.几行代码即可获取网页源代码。

  final WebClient webClient=new WebClient();

final HtmlPage page=webClient.getPage("http://www.baidu.com");

System.out.println(page.asText()); //asText()是以文本格式显示

System.out.println(page.asXml()); //asXml()是以xml格式显示

webClient.closeAllWindows();

  2.模拟文本框和模拟按钮提交,我们来模拟模拟百度搜索关键字的实现。

  // 得到浏览器对象,直接New一个就能得到,现在就好比说你得到了一个浏览器了

WebClient webclient = new WebClient();

// 这里是配置一下不加载css和javaScript,因为httpunit对javascript兼容性不太好

webclient.getOptions().setCssEnabled(false);

webclient.getOptions().setJavaScriptEnabled(false);

// 做的第一件事,去拿到这个网页,只需要调用getPage这个方法即可

HtmlPage htmlpage = webclient.getPage("http://baidu.com");

// 根据名字得到一个表单,查看上面这个网页的源代码可以发现表单的名字叫“f”

final HtmlForm form = htmlpage.getFormByName("f");

// 同样道理,获取”百度一下“这个按钮

final HtmlSubmitInput button = form.getInputByValue("百度一下");

// 得到搜索框

final HtmlTextInput textField = form.getInputByName("q1");

//搜索我的id

textField.setValueAttribute("th是个小屁孩");

// 输入好了,我们点一下这个按钮

final HtmlPage nextPage = button.click();

// 我把结果转成String

String result = nextPage.asXml();

System.out.println(result); //得到的是点击后的网页

  感觉httpunit比httpclient简单多了。 Java爬虫以后可以多尝试这个框架。提取节点的方法有很多,可以直接调用,但是好像不能从div的类中提取节点,但是可以根据id抓取。获取节点,唉,如果div没有id,我不知道如何获取网站。好像没有这样的方法可以按类来抓取。懂的同学可以给点思路。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线