基于HtmlUnit获取页面及复选框元素、单击事件操作

本文介绍WebClient的参数配置方法,包括启动JS、关闭CSS渲染、管理Cookies等,并通过斗鱼页面抓取实例演示了如何获取页面元素、模拟点击等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用WebClient的参数设置

  1. //1.创建对象
  2. WebClient webClient=newWebClient(BrowserVersion.CHROME);
  3. //2.设置参数
  4. //启动js
  5. webClient.getOptions().setJavaScriptEnabled(true);
  6. //关闭css渲染
  7. webClient.getOptions().setCssEnabled(false);
  8. //启动重定向
  9. webClient.getOptions().setRedirectEnabled(true);
  10. //启动cookie管理
  11. webClient.setCookieManager(newCookieManager());
  12. //启动ajax代理
  13. webClient.setAjaxController(newNicelyResynchronizingAjaxController());
  14. //js运行时错误,是否抛出异常
  15. webClient.getOptions().setThrowExceptionOnScriptError(false);
  16. //3.获取页面
  17. HtmlPage page=webClient.getPage(url);
  18. //等待js渲染执行 waitime等待时间(ms)
  19. webClient.waitForBackgroundJavaScript(waitime);

斗鱼页面的获取示例:

    public void getPage(){
        String url = Constants.DOU_YU_URL + XMLTools.getNodeValue(Constants.SETTINGS_PATH,"roomID","");
        logger.info("请求地址为:"+url);
//        String url = "http://www.douyu.com";
        try {
            HtmlPage page = webClient.getPage(url);
            //logger.info(page.asText());
            DomNodeList domNodeList = page.getElementsByTagName("class");
            page.getPageEncoding();
            logger.info("页面中class的个数"+domNodeList.size());
            logger.info("页面编码:"+page.getPageEncoding());
            List<HtmlAnchor> listAnchor=  page.getAnchors();
            for(HtmlAnchor anchor:listAnchor){
                logger.info("页面中链接:"+anchor.getHrefAttribute());
            }
        } catch (IOException e) {
            logger.info(e.getMessage());
        }

获取页面中复选框及模拟单击事件部分代码:

WebClient初始化及基本设置、获取页面等参考上面。

	    URL mainUrl = new URL("https://vendorcentral.amazon.cn/gp/vendor/members/obieeReports/araBasic/ara-basic?ref_=vc_ven-obiee-ara-basic-home_subNav");
            HtmlPage mainHtml = webClient.getPage(mainUrl);
            //模拟点击跳转
            HtmlSelect select = (HtmlSelect) mainHtml.getElementById("report-selector");
//            select.setSelectedAttribute("/st/vendor/members/analytics/basic/productDetail",true);
            HtmlOption option = select.getOptionByText("销售和库存 - 商品详情");
            HtmlPage page3 = option.click();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值