如何利用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

相关推荐

  • 东莞“80后对话90后” 探讨创业的机遇与经验

    卫柏辉分享了《这些年,创业那些无法满足的需求》,讲述了他在创业中遇到的三个大坑:无法满足员工的需求;无法满足的投资人需求;无法满足的客户需求。“我曾以为,创业=时间自由,其实并不是这样,一旦跨入创业就意味着你失去了更多的时间,解决各类工作问题几乎占据了我所有的时间。” 光大产业集团副总裁、光大We谷总经理林建强出席活动并致辞。他表示,非常开心能和年轻人聚在一…

    创业分享 2023-05-13
    101
  • 创业电影《燃点》热映,水滴创始人沈鹏的创业经历“更燃”

    小米获得四曲面屏幕专利:上下左右都是弯的;德国不想禁止华为参与该国5G…   接下来,大家用了整整一天时间围绕这一使命为新公司起名,最终确定为水滴。公司成立之初就获得由腾讯、美团点评、高榕资本、IDG资本、真格基金、点亮基金等共同投资的5000万元天使融资,估值近3亿元。 伯恩斯坦的分析师表示,人们对iPhone的更新换代周期延长,这可能给苹… 使用手机扫描…

    2023-05-13
    102
  • 让创业投资引领实体经济腾飞

      9月1日,李克强总理主持召开国务院常务会议,确定促进创业投资发展的政策措施,释放社会投资潜力助力实体经济。   今年以来,中央政府已出台了多项盘活财政资金、吸引社会资本以及促进社会投资健康发展的政策,李克强总理也多次提出金融要服务于实体经济,要加大支持实体经济力度。此次国务院常务会议正是这一系列措施和精神的延续和深化。   从某种意义上说,目前我国的社会…

    创业分享 2023-05-29
    142
  • 胡润:北京是30岁以下创业者之都 上海深圳排前三

    责任编辑:祝加贝   “很难想象,这380位年轻创业领袖,平均年龄28岁,平均已经融资到A轮,募集了5800万”,胡润补充道。   新京报记者 陈鹏    胡润百富董事长兼首席调研员胡润表示:“这些年轻企业家是全中国最优秀的年轻创业者,他们是一群敏锐、睿智、充满激情的人,在各自的领域快速成长,成为行业颠覆者。他们最懂得年轻人的需求,我们可以通过他们…

    2023-05-12
    117
  • 新式茶饮品牌幸茶,餐饮强企全程扶持让投资创业更轻松!

    投资连锁品牌对很多人来说是一种非常稳妥的创业方式,正是基于这样的特点,各种连锁投资店层出不穷。而业内人士认为,投资虽然简单,但是它所存在的风险还是无法估计的,这就意味着,投资商选择投资项目的时候一定要进行仔细的分析和严格的考察。目前,以新式茶饮为主的各种投资项目掀起了投资的热潮,很多投资商纷纷寻找符合自己要求的项目。在诸多茶饮项目中,幸茶的关注度占据了流量至…

    创业分享 2023-05-13
    99

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

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