如何利用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)
上一篇 2023-05-12 03:10:33
下一篇 2023-05-12 03:11:39

相关推荐

  • 学术创业与教学科研如何共存共荣

    大学教师学术创业是一个具有时代感的实践课题,顺应了国家的“双创”政策,对接了高校的突出矛盾,理应得到高教理论界的充分重视。八军教授给我寄来的《大学教师学术创业研究》(中国社会科学出版社)一书,正是围绕这个主题,从理论篇、实践篇与政策篇三个部分展开研究,提出了颇多具有创新性的理论观点与针对性的改革路径。我仅从学术创业与教学科研的关系,以及大学职能体系建设方面,…

    创业分享 2023-05-10
    12000
  • 喝着咖啡 创业众筹都解决

      信息时报讯   (记者 蒋隽 通讯员 白念礼) 一边喝着咖啡,一边把创业、众筹、天使投资、IPO……都解决了,多好!昨日上午,广州科创咖啡在黄花岗科技园广州创业大街开业。科创咖啡承托了科技企业新三板促进会、广东省省级众创空间等单位主体,承载众筹平台、路演中心、科技信贷服务三大功能,为科技金融平台、创业咖啡、创业团队提供低成本的创业空间及环境。   作者:…

    创业分享 2023-06-04
    5300
  • 军创惠民就业创业工程 率先在内蒙古自治区鄂尔多斯基地启动

    2018年5月28日,由中国民营科技促进会双创工作委员会、军创惠民就业创业管理中心主办,军创惠民鄂尔多斯基地承办,保定市立发纸业有限公司、糖平衡医生集团、山东临沂翔达生物科技有限公司、沈阳北星脊柱梳理有限公司等来自全国各地的爱心企业、企业家及内蒙自治区鄂尔多斯市各界人士参加的一场“军创惠民就业创业工程鄂尔多斯基地启动仪式”的活动,在鄂尔多斯市隆重举行。 出席…

    创业分享 2023-05-17
    7500
  • 中关村兰州众创空间启动,VR教育微视酷CEO杨威分享创业经验中国

    在揭牌仪式上,中关村虚拟现实空间(兰州)众创空间还与多家入驻企业进行了签约仪式, 专家们指出众创空间的成立为兰州经济发展注入了新的活力,有助于本土的VR行业企业快速孵化、成长,有助于实现经济效益与社会效益的双丰收。 IES沉浸式教育系统被称为VR教育界的“windows”,解决了传统教学中的内容枯燥、不直观,学生注意力不容易集中等难题,实现了真正的VR教学。…

    创业分享 2023-06-16
    8600
  • 欧美同学会第五届年会暨海归创新创业(成都)峰会开幕

    欧美同学会第五届年会 暨海归创新创业(成都)峰会开幕 孙春兰出席开幕式并发表讲话 陈竺发表视频致辞 王东明致辞 尹力主持 张裔炯柯尊平出席   四川在线消息(记者 张宏平 钟振宇 熊筱伟)由欧美同学会·中国留学人员联谊会和省委、省政府主办的欧美同学会第五届年会暨海归创新创业(成都)峰会,10月18日上午在成都开幕。   开幕式上,中共中央政治局委员、中央统战…

    创业分享 2023-05-28
    6400

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

关注微信