如何利用Java爬取网站数据?

1.Jsoup介绍

  - 官网文档:https://jsoup.org

  - Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

  2. Jsoup快速入门

  - 获取网页标题

  String url = “https://search.jd.com/Search?keyword=手机&wq=手机&page=1”;   Document document = Jsoup.connect(url).get();   String title = document.select(“title”).text();   System.out.println(title);   `

  - 运行效果:手机 – 商品搜索 – 京东

  3. 网站数据分析

  3.1 分析网站的访问地址

  - 以京东商城为例,商品分页列表的url地址,需要带如下几个参数,因此,在发送http请求时,需要携带正确的参数。

  - URL:

https://search.jd.com/Search?keyword=手机&wq=手机&page=1

  3.2 分析网站的页面结构

  - 通过浏览器的开发者工具,可以分析出页面中我们需要的html结构。

<img src=“assets/image-20220717171103097.png” alt=“image-20220717171103097” style=“zoom:67%;” />

– 可以看出,我们需要的商品数据,封装在一个id=J_goodsList的div标签中,我们可以方便的通过DOM解析出这块数据。

  4. 实战实现过程

  - 获取第1页的商品基本数据

public static void main(String[] args) throws Exception { //第1页地址 String url = “https://search.jd.com/Search?keyword=手机&wq=手机&page=1”; //发送http请求 Document document = Jsoup.connect(url).get(); //在id=J_goodsList的div下,获取所有带有data-sku属性的li标签 Elements lis = document.select(“div[id=J_goodsList] li[data-sku]”); lis.forEach( li -> { //获取商品sku String sku = li.attr(“data-sku”); //获取商品name String name = li.select(“div[class=p-name p-name-type-2] a em”).text(); //获取商品图片地址 String img = li.select(“div[class=p-img] a img[data-lazy-img]”).attr(“data-lazy-img”); System.out.println(String.format(“%s, %s, %s”, sku, name, img)); } ); }

  - 效果预览

如何利用Java爬取网站数据?

  - 改造为分页获取

public static void main(String[] args) throws Exception { //第N页地址 String url = “https://search.jd.com/Search?keyword=手机&wq=手机&page=” + i; //发送http请求 Document document = Jsoup.connect(url).get(); //在id=J_goodsList的div下,获取所有带有data-sku属性的li标签 Elements lis = document.select(“div[id=J_goodsList] li[data-sku]”); lis.forEach( li -> { //获取商品sku String sku = li.attr(“data-sku”); //获取商品name String name = li.select(“div[class=p-name p-name-type-2] a em”).text(); //获取商品图片地址 String img = li.select(“div[class=p-img] a img[data-lazy-img]”).attr(“data-lazy-img”); System.out.println(String.format(“%s, %s, %s”, sku, name, img)); } ); }

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:如何利用Java爬取网站数据? https://www.dachanpin.com/a/cyfx/11333.html

(0)
程序员发帖:从面试到谈薪只用了3天,这种公司能去吗?
上一篇 2023-05-12 03:10:33
程序员35岁就会失业?这是我听过最好的答案
下一篇 2023-05-12 03:11:39

相关推荐

  • 容器创业公司有容云完成千万级Pre

    有容云(深圳市云舒网络技术有限公司)成立于2010年,是以应用为中心、容器技术为核心驱动的下一代云计算解决方案和服务提供商。有容云提供覆盖私有云、公有云、混合云的应用构建、迁移、运行能力,打造应用交易产业链,提供一站式云服务,让客户实现购买即获得业务能力。 未来三年将是有容云高速发展的黄金时期,借助募集到的Pre-A轮资金,公司将加强团队建设,在研发、销售、…

    创业分享 2023-05-25
  • 7年创业经验总结:创业前需要知道的11件事

    《7年创业经验总结:创业前需要知道的11件事》文章已经归档,不再展示相关内容,编辑建议你查看最新于此相关的内容: 赛菲尔王义善:从白手起家到开创新黄金时代的奋斗史 创业者如何从零开始走向成功?如何在日常生活中发现商机?一个品牌又该如何从同质化的市场中脱颖而出?2019年4月16日下午,深圳赛菲尔珠宝首饰有限公司董事长王义善来到中国传媒大学《企业创业与创新》的…

    创业分享 2023-05-13
  • 三亚学院荣获全国创新创业典型经验高校50强

    为扎实做好创新创业工作,学校成立校院两级创新创业领导小组,设立了创新创业教育专家指导委员会,制定《三亚学院深化创新创业教育改革工作实施方案》,并在学校“十三五”规划中旗帜鲜明地列入深化创新创业工作的相关内容。 责任编辑: 孙多伟 近日,教育部公布2017年度全国创新创业典型经验高校名单,三亚学院成为年度全国创新创业典型经验高校50强;同时获此荣誉的还有北京航…

    2023-05-22
  • 成为Java架构师需要掌握哪些能力?

    在互联网开发领域,架构师可以分为业务架构师、中间件架构师、系统架构师。 根据不同的方向,在相关招聘平台上,对于架构师的岗位职责和任职要求各有不同。在招聘网站上可以看到真实的例子: Java架构师(点击查看大图) 中间件架构师(点击查看大图) 系统架构师(点击查看大图) 以上是三种不同架构师的能力要求,虽然类型不同,技术要求侧重不同,但是我告诉你,成为架构师都…

    2023-05-12
  • 江西省新余市渝水区2018年首期大学生创业培训班开班

    为鼓励和支持大学生创业,帮助大学生掌握创业知识,提高创业技能,渝水区公共就业人才服务局组织开展本次为期7天的创业培训。此次培训邀请了SYB专职教师为在校大学生讲解创业计划、创业项目、政策法规等方面的内容,并结合大学生的创业特点,在创业启动资金、创业项目选择、项目创办程序等方面做重点辅导,引导大学生转变就业观念,提高创业意识,掌握创业技能,规避创业风险。对毕业…

    创业分享 2023-06-15

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息