如何利用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-17
    49
  • 【壮阔东方潮 奋进新时代——庆祝改革开放40周年特刊(中)】父子俩的创业选择

    出身普通工人家庭的杜太航,人生轨迹的第一次改变,始于39年前的一次考试。 家乡的创业政策让杜乾如鱼得水。小呔成立之初,政府在桥西区一个产业园内为其提供了一个500平方米的办公场地。“仅此一项,公司一年就节省了房租20万元。” 汉佳电子科技有限公司办公场景。 阳定俊摄 时代的烙印和一辈子国企职工的身份,让两位老人一度对儿子的决定很不理解。在他们看来,转业到地方…

    创业分享 2023-05-13
    75
  • 河北省第六届创新创业大赛 军民融合行业赛鹿泉开幕

    1、东方今报网是东方今报社唯一官方网站,东方今报的作品均已授权东方今报网(以下简称本网)在互联网上发布和使用。未经本网所属单位许可,任何人不得非法使用东方今报(含下属频道作品)以及本网自有版权作品。 2、本网转载其他媒体之稿件,以及由用户发表上传的作品,不代表本网赞同其观点和对其真实性负责。 3、如因作品版权和其它问题可联系本网,本网确认后将在24小时内移除…

    创业分享 2023-05-16
    90
  • 洋码头曾碧波创业心得:行业趋势不等于“资本趋势”

      怎么实现“目标”   但资本我认为,确实不是创业者需要去敬畏的,资本要的也不是你所谓的“敬畏”。资本更多是创业者需要去感激的,和资本之间的信约是需要创业者去遵守的。创业者最需要敬畏的,是他自己所在市场,是自己客户,以及世间的天理与道德底线。所以我认为马云那句话特别对:客户第一;员工第二;资本第三。   很多创业者,他如果说对自己的生活要求就是要开宝马,要…

    创业分享 2023-05-23
    77
  • 中国掀“共享单车”热潮 青年创业家放眼全球市场

      【环球网报道 记者 王一】据英国《卫报》12月28日报道,数月以来,中国多个大城市都卷起了一阵“共享单车”的热潮,青年创业家们不仅看中了改善城市出行的这一“绿色商机”,而且更着眼全球市场,想让这股热潮席卷世界。   荧光橘、海洋蓝、金丝雀黄…报道称,数月以来,上海、北京、厦门、成都等大城市街头刮起了一阵“共享单车”的旋风。提供这些单车的企业不仅想从中获利…

    2023-05-26
    126

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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