Java:爬虫htmlunit实践

这篇具有很好参考价值的文章主要介绍了Java:爬虫htmlunit实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前我们已经讲过使用htmlunit及基础,没有看过的可以参考Java:爬虫htmlunit-CSDN博客

我们今天就来实际操作一下,爬取指定网站的数据

1、首先我们要爬取一个网站数据的时候我们需要对其数据获取方式我们要进行分析,我们今天就拿双色球历史开奖查询-双色球历史开奖结果-彩经网作为我们示例目标,使用google浏览器,示例仅供学习使用

Java:爬虫htmlunit实践,Java,java,爬虫

历史数据比较多,所以存在分页的情况,请打开f12调出开发者模式

Java:爬虫htmlunit实践,Java,java,爬虫

在使用网站过程中我们点击下一页的时候发现,请求接口已经做了路由跳转,在右侧请求地址中未发现数据接口,在上方发现地址变化了,为什么会这样呢?这个其实涉及到了搜索引擎收录的问题这个在后续我们会具体讲解;我们现在可以继续尝试点击下一页,地址都会变化所以我们直接根据地址来进行爬数据操作就可以了,地址确定之后我们就需要对页面数据进行分析

Java:爬虫htmlunit实践,Java,java,爬虫

实际我们只要获取列表数据即可,第一行数据是头所不需要获取,即获取第二个 //tbody[@id='kjnum']//tr ,代码如下 >>> 

@Slf4j
public class BaseTest {


	public static void main(String[] args) throws Exception {
		HtmlPage page = SpiderUtils.crawlPageWithoutAnalyseJs("https://www.cjcp.cn/kaijiang/ssqmingxi_154.html");
		//System.err.println(page);
		List<HtmlTableRow> htmlTableRowList = page.getByXPath("//tbody[@id='kjnum']//tr");
		htmlTableRowList.forEach(f -> {
			log.info("********************");
			List<HtmlTableCell> htmlTableCellList = f.getCells();

			log.info("开奖期数 >> " + htmlTableCellList.get(0).getTextContent());
			log.info("开奖时间 >> " + htmlTableCellList.get(1).getTextContent());
			log.info("双色球开奖结果 >> " + htmlTableCellList.get(2).getTextContent());

			log.info("总销售额 >> " + htmlTableCellList.get(3).getTextContent());
			log.info("奖池 >> " + htmlTableCellList.get(4).getTextContent());
			log.info("一等奖 >> 注数  >> " + htmlTableCellList.get(5).getTextContent());
			log.info("一等奖 >> 金额  >> " + htmlTableCellList.get(6).getTextContent());
			log.info("二等奖 >> 注数  >> " + htmlTableCellList.get(7).getTextContent());
			log.info("二等奖 >> 金额  >> " + htmlTableCellList.get(8).getTextContent());
			log.info("三等奖 >> 注数  >> " + htmlTableCellList.get(9).getTextContent());
			log.info("三等奖 >> 金额  >> " + htmlTableCellList.get(10).getTextContent());
			log.info("********************");
		});
	}
}

执行后,发现我们未获取到号码 >>>

Java:爬虫htmlunit实践,Java,java,爬虫​ Java:爬虫htmlunit实践,Java,java,爬虫

通过对页面的分析,发现号码是图片形式所以我们要添加下获取方式 >>>

List<HtmlImage> htmlImageList = htmlTableCellList.get(2).getByXPath("div//img");
htmlImageList.forEach(htmlImage -> {
    log.info(htmlImage.getAttribute("src"));
});

这个时候我们再跑一下数据 >>> 这时候我们就可以看到已经正常获取数据 

Java:爬虫htmlunit实践,Java,java,爬虫注意:在此我们需要getByXPath中获取当前节点的根不能以"//"开始,"//为当前页面根目录搜索" 

当然大家对爬虫比较感兴趣,htmlunit还提供了其它获取页面元素的方法,具体我们可以参考HtmlTableRow 类 (System.Web.UI.HtmlControls) | Microsoft Learn文章来源地址https://www.toymoban.com/news/detail-794944.html

到了这里,关于Java:爬虫htmlunit实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java HttpClient爬虫请求

    添加依赖 pom文件 GET 无参形式 GET带参请求 POST无参请求 POST带参请求

    2024年02月16日
    浏览(10)
  • Java爬虫详解

    Java爬虫详解

    这是 Java 爬虫系列文章的第一篇,第一篇是关于 Java 爬虫入门内容,在该篇中我们以采集开源情报网站中的ip数据为例,需要提取的内容如下图所示:Statistics | AbuseIPDB      我们需要提取图中圈出来的内容及其对应的链接,在提取的过程中,我们会使用两种方式来提取,一种

    2023年04月21日
    浏览(6)
  • Java爬虫

    通过请求,从而去获取互联网上的各种数据与资源,如文字,图片,视频。 本质上原理都一样,都是通过api请求,然后服务器就会发给你信息,然后你再根据这些信息去提取你想要的资源。 还有比如抢票,你只是通过发送请求,从而达到抢票的目的,但是并没有获取信息之

    2024年02月14日
    浏览(4)
  • Java-网络爬虫(三)

    Java-网络爬虫(三)

    2024年01月18日
    浏览(2)
  • java爬虫详解及简单实例

    java爬虫详解及简单实例

    java爬虫是一种自动化程序,可以模拟人类在互联网上的行为,从网站上抓取数据并进行处理。下面是Java爬虫的详细解释: 1、爬虫的基本原理 Java爬虫的基本原理是通过HTTP协议模拟浏览器发送请求,获取网页的HTML代码,然后解析HTML代码,提取需要的数据。爬虫的核心是HTT

    2024年02月07日
    浏览(7)
  • JAVA实现问财爬虫

    JAVA实现问财爬虫

    通过 RestTemplate 将查询语句申请发送至问财,实现同花顺问财的爬虫获取数据,例子中实现了将爬取的数据写入excel文件并染成红色,可将其改造放入数据库中. 通过测试发现爬虫自动能访问一百多次左右,会被官方识别为爬虫,解决办法为用浏览器打开问财,验证下图形验证

    2024年02月09日
    浏览(2)
  • 爬虫获取渲染后页面(JAVA)

    最近突然想了解一下爬虫,但是自己又不太了解python,所以学习了下Java版爬虫。在这个过程中遇到了一个问题,为了解决这个问题,百度了很多方法,两个小时候,终于找到了一个最佳方案 第一个问题:想要抓取的网页是http or https请求,这个很关键,有些方法无法实现htt

    2024年02月16日
    浏览(9)
  • Java爬虫教程:从入门到精通

    在互联网时代,海量的数据被存储在各种网页中。而Java作为一门强大的编程语言,具备丰富的网络编程能力,可以帮助开发者高效地获取和处理网络数据。本教程将带您从入门到精通,学习如何使用Java编写爬虫程序,掌握爬取网页、解析数据和存储数据的技巧。 1.1 什么是爬

    2024年02月04日
    浏览(13)
  • Selenium入门用法详解【Java爬虫】

    概述 Selenium 是一个有很多工具和库,可以用来支持浏览器自动化的项目 它能模拟用户与浏览器进行交互,实现 了W3C WebDriver 规范的基础架构 。 Selenium 的核心是WebDriver,可以理解为一个驱动包。 搭建项目 1.先安装Selenium类库(java) 打开你的IDEA,新建一个空的Maven项目, 在项

    2023年04月11日
    浏览(9)
  • 【java爬虫】selenium+browsermob入门实战

    【java爬虫】selenium+browsermob入门实战

    在爬虫领域,selenium几乎是最无所不能的一个框架了,在传统的爬虫无能为力的时候,我们可以使用selenium来请求动态页面获取信息。 当然,只有selenium还是不够的,因为使用selenium我们只能获取页面上展示的数据,但是无法获取Network请求和响应结果,有些网页并不会将从接口

    2024年02月16日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包