数据采集 htmlunit 使用心得

HtmlUnit(Java)实战指南:从基础爬取到高级交互 本文详细介绍了HtmlUnit这一基于Java的无界面浏览器库,从环境搭建、核心API使用到模拟用户交互、处理异步加载及文件下载等高级功能。通过实战案例,指导开发者高效构建能处理JavaScript动态内容的网络爬虫和自动化脚本,并提供了性能调优与反爬应对策略。 阅读详情

HtmlUnit is a “GUI-Less browser for Java programs”. It models HTML documents and provides an API that allows you to invoke pages, fill out forms, click links, etc… just like you do in your “normal” browser.

翻译:

HTMLUnit 是一个无界面的Java浏览器,可以渲染生成HTML文档,同时提供操作网页的接口,例如填充表单,点击链接,就如同你在浏览器中的操作。

之前做数据采集研究的时候发现Java httpClient 很多页面中数据采集不到,然后发现需要执行JavaScript 脚本。

一般遇到JS 就开始两条思路了

  • 硬核分析js

硬核分析解决思路就是在浏览器中调试js,分析代码,最终把采集目标相关的js执行过程在程序中模拟出来,获取到最终数据。

  • 直接渲染

直接渲染就是把页面中的JS 脚本放入本地的JS引擎,直接生成一个成品HTML,之后直接解析HTML

htmlunit 的思路属于JS 渲染。

分析下关键字,
Java : 适用于用Java写爬虫的同同学
操作页面: 不仅仅可以采集到渲染后的网页,还可以操作页面。

所以这个主要是为了网页自动化测试,使用Java编写自动化测试脚本。
表单提交、网页交互都支持。

https://htmlunit.sourceforge.io/gettingStarted.html

HtmlUnit网络爬虫实践示例 在HtmlUnit中,你可以轻松地自定义用户代理字符串来模拟各种设备和浏览器。这可以通过简单地配置HtmlUnit的WebClient对象来实现。在上面的Java代码中,我们创建了一个带有Firefox 38版本的WebClient实例,并设置了自定义的用户代理字符串。在本章中,我们深入了解了如何在HtmlUnit中模拟用户代理和管理Cookies。我们学习了用户代理字符串的自定义、模拟不同设备与浏览器的方法,以及如何创建、存储、修改Cookies并确保其一致性。 阅读详情

相关推荐

Java网页采集工具源码解析与实战

htmltable {th, td {th {pre {简介:Java采集工具利用HTMLUnit库实现数据采集和解析,提供了一个深入学习网页抓取技术的机会。HTMLUnit通过模拟Web客户端行为,执行JavaScript和解析HTML页面,而XPath用于在HTML文档中定位特定元素。源码详细介绍了工具的配置、初始化、网页加载、数据处理及异常处理,以及如何使用依赖管理工具。该工具虽效率有限,但适合学习和实践,帮助开发者提升网络爬虫技能。

weixin_35982453的博客 1397

使用HtmlUnit抓取js渲染后的页面

在Eclipse里运行成功(即,得到了html里js渲染后拉取到的服务端数据)后,右键Export - Runnable JAR file - 起名为例如 HtmlUnit.jar。但测试后也只能得到js未渲染时的html,也试了window.setTimeout等待js渲染完成,总之没成功。如果someCmd是wget/curl这种,只能得到一个html,里边的js所拉取(渲染)的数据是得不到的。java里是写死了url,后边做成参数的或读取某个配置文件(例如,里边每行一个所要读取的url)

piggy514的博客 943

Htmlunit2.8开发文档

Htmlunit2.8开发详细文档,还有一些例子源码

玩转htmluinit

场景使用:网页爬虫,一个网页数据抓取工具。htmlunit可以模拟浏览器执行,但是不会正真打开一个浏览器界面,是webdriver的轻量级实现。 优点:比webDriver运行快,少占用资源。 缺点:对js,css的支持不是很好,需要处理。使用方法 首先加载htmlunit对应的jar包 a. 对应下载:htmluint-2.23.jar(也

u011403982的博客 907

htmlunit参考文档

htmlunit参考文档 api文档,配合源码使用。

html unit (java编写的html渲染工具)

htmlunit 是java编写的对AJAX html(动态网页)进行渲染的有力工具,做互联网信息抓取项目时可能用到

使用HtmlUnit模拟浏览器执行JS来获取网页内容

使用HtmlUnit模拟浏览器执行JS来获取网页内容 yunshouhu import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.*; import org.junit.Assert; import org.junit.Test; import java.util.Iter

cxu123321的博客 1304

htmlunit-2.49.1-API文档-中文版.zip

赠送jar包:htmlunit-2.49.1.jar; 赠送原API文档:htmlunit-2.49.1-javadoc.jar; 赠送源代码:htmlunit-2.49.1-sources.jar; 赠送Maven依赖信息文件:htmlunit-2.49.1.pom; 包含翻译后的API文档:htmlunit-2.49.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:net.sourceforge.htmlunit:htmlunit:2.49.1; 标签:sourceforge、htmlunit、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

htmlunit 入门--官网示例

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34144450的博客 1000

htmlunit-2.33-API文档-中文版.zip

赠送jar包:htmlunit-2.33.jar; 赠送原API文档:htmlunit-2.33-javadoc.jar; 赠送源代码:htmlunit-2.33-sources.jar; 赠送Maven依赖信息文件:htmlunit-2.33.pom; 包含翻译后的API文档:htmlunit-2.33-javadoc-API文档-中文(简体)版.zip; Maven坐标:net.sourceforge.htmlunit:htmlunit:2.33; 标签:sourceforge、htmlunit、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码)

本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。

e3f4g5的博客 282

HtmlUnit抓取js渲染页面

需求: 需要采集js渲染的页面,有些网站的页面是js渲染的 实现: 基于HtmlUnit实现: public static void getAjaxPage() throws Exception{ WebClient webClient = new WebClient(); webClient.setJavaScriptEnabled(true); webClient.set...

smallnetvisitor的博客 718

ECN实战指南:如何用SAP系统搞定工程变更(附库存处理避坑技巧)

本文详细解析了如何在SAP系统中高效执行工程变更通知(ECN),特别聚焦PP模块的操作流程与库存处理技巧。通过实战案例和系统操作指南,帮助制造业企业避免库存混乱和生产中断,实现从创建到生效的全流程管理。

m5n6o7的博客 1079

htmlunit爬虫案例

过去有一段时间了,记录一下曾经参与过的爬虫项目。 一个main方法,开两个线程,一个收集需要执行爬取的任务,一个执行爬取。 //数据采集:判断是否启动采集线程 String isStartDataSpiderTask = SystemProperties.getContextProperty("data.spider.task"); if(isStartDataSpiderTas...

suchengbin3433的博客 1021

超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解

这篇博文提供了一个关于使用YOLOv8进行目标检测的全面指南,包括环境搭建、模型训练、验证和预测的详细步骤,以及如何解释训练过程中生成的各种图表和数据。整篇文章为读者提供了一个关于如何利用YOLOv8进行目标检测的实践指南,从环境搭建到模型部署,再到结果分析,每一部分都给出了详细的步骤和解释。此外,还有对于模型输出的解释,帮助读者更好地理解和使用YOLOv8模型。

CDBmax的博客 10万+

银行客户投诉预测模型优化

在实际操作中,银行可以使用这个优化后的模型来识别那些可能引起客户不满的因素,并采取预防措施。例如,如果模型表明退款金额是一个很强的预测因子,银行可能会审查其退款政策,以确保它对客户是公平和透明的。在银行业务中,客户投诉是一个重要的指标,它直接关系到客户满意度和银行服务质量。某一个指标,比如:退款金额,本文假设退款金额对于预测投诉的权重应该高于赔偿金额。在每次迭代中,本文使用当前的权重组合来训练模型,并计算在测试集上的准确率。的可能值来搜索最佳的权重组合,并输出最佳准确率及对应的权重。来寻找最佳的权重组合。

weixin_57499254的博客 1707

使用htmlunit采集网页+点击网页按钮

有兴趣可以了解下这款国内人气很旺的JAVA代码生成器基于拖拽,不用写复杂的模板,支持多种数据库,适配wap,管理后台各种功能全有 免费开源 地址:https://blog.youkuaiyun.com/adyuebanwan/article/details/83006405 或者 http://www.magicalcoder.com ====================================...

adyuebanwan的专栏 8827

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

【企业岗位需求决策--数据采集】

头歌平台的实验——企业岗位需求决策--数据采集

f_f1030的博客 2366

2023华为od机试C卷【最富裕的小家庭】C++ 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 1238

[关系图谱] 二.Gephi导入共线矩阵构建作者关系图谱

本文主要讲解Gephi绘制作者间的关系图谱,该软件可以广泛应用于社交网络、知识图谱分析,推荐读者使用。这是非常基础的一篇文章,重点讲解Gephi使用方法,希望对大家有所帮助。

杨秀璋的专栏 1万+

htmlunit和爬虫问题

最近写了个爬虫项目,暂时放在github上。https://github.com/shenbaise/goodcrawler   对于爬虫最难的问题应该是javascript和ajax的处理。现在很多网站使用大量ajax,普通爬虫无法获取js生成的 内容。   目前大体上有2中方式来解决这个问题。 一是使用htmlunit之类的所谓handless browser。htmlunit...

小笔记 690

MAC-电脑中的user文件夹在哪?

MAC-电脑中的user文件夹在哪?

兴趣是最好的老师 1万+

JAVA整合无忧代理IP做数据采集的DEMO

JAVA整合无忧代理IP做数据采集的DEMO 无忧代理IP,官网是www.data5u.com,提供的爬虫动态代理IP用来做数据采集、大数据抓取还是挺好用的,效果不错,下面是JAVA代码,用到了HtmlUnit+Jsoup这个技术。 Maven用户需要在Pom.xml文件中引入相关依赖,如下: <!-- ************htmlunit************* --> ...

无忧代理IP 1146

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

网页数据采集爬虫研究

数据采集的方式 采用国内现成的采集工具 通用类: 如火车头,八爪鱼等,gooseeker.com等,有配置页面,可定义规则,八爪鱼号称有抓取国内主流电商网站的版本。 专用类 天猫店铺商品采集工具 v1.0 免费版 http://www.cncrk.com/downinfo/71232.html   http://bbs.locoy.com/spider-132726-1-1.ht

xcjing的博客 5237

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

为什么数据采集(爬虫)需要用到代理IP

这个问题很简单了,因为你要采集的网址会封禁你的请求IP,导致你的请求无法获取到正确的数据。 代理IP起到了中间层的作用,你要采集的网址服务器会认为你的请求IP是代理IP,从而无法实施封禁行为。 当然,并不是所有的代理IP都能起到这个作用。代理IP分为高匿名、透明(普通匿名也认为是透明)两种;透明代理IP服务器端看到的是你的真实IP和代理IP,高匿名代理IP服务器端只能看到代理IP。所以说,还必...

无忧代理IP 1033

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: swagger 采坑记录
下一篇: ReentrantLock和Condition 实现生产者 运输者 消费者
hamish-wu
博客等级 码龄15年 2814粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值