【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo
简单记录 - Jsoup爬虫入门实战
数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫!
爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!)
我们经常需要分析HTML网页,以从中提取感兴趣的信息。
开始,一个简单获取京东商品的小Demo。
eg:比如我搜索java关键字 https://search.jd.com/Search?keyword=java&enc=utf-8&wq=java&pvid=71ec4d01ed1f428b8f3fc2c53a53208d
怎么获取呢这些数据信息呢?
jsoup包!
JsoupJsoup是一款Java的HTML解析器,可直接解析某个URL地址和HTML文本内容。它提供了一套非常省力的API,可通过DOM、CSS以及类似于jQuery的操作方法来取出和操作数据。网址:https://jsoup.org。
1、导入依赖
<!--解析网页 jsoup-->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
jsoup是解析网页的。
2、分析网页
分析京东网页可得 物品在id为"J_goodsList"的div的ul的li里,那就搞过来吧。
3、代码实现
public class JsoupHtmlParseJd {
public static void main(String[] args) throws IOException {
new JsoupHtmlParseJd().parseJD("java").forEach(System.out::println);
}
public List<Product> parseJD(String keyword) throws IOException {
//获得请求 eg:https://search.jd.com/Search?keyword=java
String url = "https://search.jd.com/Search?keyword=" + keyword;
//中文? 中文在url后面拼上&enc=utf-8
url = url + "&enc=utf-8";
//解析网页。(Jsoup返回Document就是浏览器Document对象)
Document document = Jsoup.parse(new URL(url), 30000);
Element element = document.getElementById("J_goodsList");
//分析京东网页可得 id为"J_goodsList"的div的ul的li 数据在li里
//获取所有的li元素, 那才是真的数据
Elements elements = element.getElementsByTag("li");
// 获取元素中的内容, 这里的el 就是每一个li标签了!
// 封装个对象 来存储爬的数据
ArrayList<Product> goodsList = new ArrayList<>();
for (Element el : elements) {
//获取第一个图片 src属性 图片呢 为什么获取不到呢
//原来是 source-data-lazy-img 性能
//String img = el.getElementsByTag("img").eq(0).attr("src");
String img = el.getElementsByTag("img").eq(0).attr("source-data-lazy-img");
String price = el.getElementsByClass("p-price").eq(0).text();
String title = el.getElementsByClass("p-name").eq(0).text();
String shop = el.getElementsByClass("p-shop").eq(0).text();
// System.out.println("=========================");
// System.out.println("标题:" + title);
// System.out.println("图片url:" + img);
// System.out.println("店铺:" + shop);
// System.out.println("价格:" + price);
Product product = new Product();
product.setImg(img);
product.setPrice(price);
product.setTitle(title);
product.setShop(shop);
goodsList.add(product);
}
return goodsList;
}
}
@Data
//有参数
//无参数构造
@AllArgsConstructor
@NoArgsConstructor
public class Product {
private String title;
private String img;
private String price;
private String shop;
}
4、运行结果
D:\Environments\jdk-8u241\bin\java.exe 。。。
Product(title=Java从入门到项目实战(全程视频版) 65小时全程视频教学,著名软件技术讲师20年Java经验集成之作,配套源代码、课件、自测题、面试题,赠Java工程师学习路线、职业规划、自我修养视频课, img=//img12.360buyimg.com/n7/jfs/t1/37162/11/8870/130954/5ccfe770E9ce31151/74a5a5dcd83ecc09.jpg, price=¥84.80¥34.90, shop=中国水利水电出版社)
Product(title=Offer来了:Java面试核心知识点精讲(原理篇) 精讲Java面试必需的JVM原理、Java基础、并发编程、数据结构和算法、网络与负载均衡、数据库与分布式事务、分布式缓存原理及应用、设计模式原理及实现, img=//img13.360buyimg.com/n7/jfs/t1/45591/11/14475/114999/5db2539aE78c5a65e/395212e63f5a93c7.jpg, price=¥88.10¥84.60, shop=电子工业出版社)
Product(title=码出高效:Java开发手册 中国人自己原创的Java编程规范\从入门到大师的体系化开发指南\助你高效码代码迅速成长, img=//img13.360buyimg.com/n7/jfs/t30436/35/1494683199/69182/11fe5fb2/5ce20930N6d70a9f6.jpg, price=¥98.00, shop=电子工业出版社)
Product(title=阿里巴巴Java开发手册 中国人自己原创的Java编程规约;阿里经济体全球技术开发准则; 帮助工程师脱离烦琐,重燃技术激情; 降低企业技术沟通成本,提高团队协同研发效能, img=//img11.360buyimg.com/n7/jfs/t15166/324/2041049880/267178/69de6aaa/5a693fa1Nf13ae221.png, price=¥27.60, shop=电子工业出版社)
Product(title=O'Reilly:Head First Java(中文版 第2版 涵盖Java5.0) 10年畅销经典,累计印刷20多次,畅销10万余册,计算机图书十大好书之一, img=//img10.360buyimg.com/n7/jfs/t2680/274/3707696254/120035/6281369a/57986bbdN27e0e4fe.jpg, price=¥72.70, shop=中国电力出版社)
Product(title=Java 8实战 Java 8终 极指南 通过新的Stream API及Lambda表达式等示例全面讲解Java 8新特性 并为Java程序员开启函数式编程的大门, img=//img10.360buyimg.com/n7/jfs/t2395/169/2883784014/95060/83d0b6ec/571e49e0N5a93c2ee.jpg, price=¥66.20, shop=人民邮电出版社)
Product(title=Java实战 第2版 高分经典《Java8实战》全新改版升级,通过示例全面讲解Java8、9、10新特性,让你尽快掌握流应用程序接口等Java编程利器,使你的代码更加优雅, img=//img10.360buyimg.com/n7/jfs/t1/58652/2/12362/129522/5de751dcE494b5dfa/d00e13726d206e88.jpg, price=¥99.70, shop=人民邮电出版社)
Product(title=Java设计模式及实践 精选Java实用设计模式,帮你有效解决开发应用程序过程中的常见问题,轻松应对各种规模项目的扩展和维护, img=//img11.360buyimg.com/n7/jfs/t1/33309/28/15393/98266/5d1eedbaE4ce86199/2cddbf8b81dbcf85.jpg, price=¥65.20, shop=机械工业出版社)
Product(title=深入理解Spring MVC源代码:从原理分析到实战应用 Java架构师必备,Web开发人员案头手册!精通SpringMVC源代码,深入理解框架开发编程思想和设计模式,从框架使用者到开发者,带你实现认知升级和华丽转身, img=//img14.360buyimg.com/n7/jfs/t1/79815/34/13046/231814/5db28fedE9959cd85/a5b85d0b9944f6c7.jpg, price=¥106.90, shop=中国水利水电出版社)
Product(title=Java开发从入门到精通 第2版 基于Java 11版本讲解, img=//img11.360buyimg.com/n7/jfs/t1/102093/26/3303/117819/5ddf352fE39f3f8d8/b1fe89e66574184e.jpg, price=¥107.90, shop=人民邮电出版社)
Product(title=深入浅出Node.js 深入讲解Node的图书 讲述基于JavaScript运行时所建立的平台原理 与mongodb结合操作的具体案例 响应式设计别具匠心, img=//img13.360buyimg.com/n7/jfs/t6094/107/710811867/382815/4d54717/592bf165N755a88f0.jpg, price=¥54.50, shop=人民邮电出版社)
Product(title=Java性能权威指南 深入理解Java平台性能和语言程序设计开发实战 疯狂理解Java核心技术与编程思想的讲义 让你的程序如虎添翼, img=//img13.360buyimg.com/n7/jfs/t2674/39/632591997/326443/6d5dd326/571ed7d2Nfb8d8752.jpg, price=¥66.20, shop=人民邮电出版社)
Product(title=Java架构师指南 知名Java专家多年经验总结 介绍从程序员进阶到架构师需要具备的技能的完整教程, img=//img11.360buyimg.com/n7/jfs/t20167/176/378379777/135717/5f59bebd/5b0cc13dN438d2bfc.jpg, price=¥88.10, shop=人民邮电出版社)
Product(title=图解Java多线程设计模式 Java程序员bi读 精选12种设计模式 轻松学习多线程编程, img=//img12.360buyimg.com/n7/jfs/t5797/85/9205318505/62242/28fec040/599a668aN07d69866.jpg, price=¥74.50, shop=人民邮电出版社)
Product(title=Java网络编程(第四版) 从事Java网络程序长达20年的资深作者,Java开发网络开发实用指南。, img=//img11.360buyimg.com/n7/jfs/t2470/89/1665313191/110499/8ccbd398/566fa288Nd48b1fb0.jpg, price=¥71.80, shop=中国电力出版社)
Product(title=JavaScript DOM编程艺术(第2版) 畅销书升级版 详解开发Web应用的基石 W3C的DOM标准 国际知名web设计师 倡导Web标准的领军人物执笔 揭示了前端开发的真谛, img=//img13.360buyimg.com/n7/jfs/t5914/15/800105189/215959/973eea1f/592bf164N56d3e3db.jpg, price=¥41.00, shop=人民邮电出版社)
Product(title=数据结构与算法Java语言描述 本书介绍了怎样使用数据结构实现有效的算法,分析和测试了算法的性能,并学习如何从零开始建立一个有趣的搜索引擎。, img=//img12.360buyimg.com/n7/jfs/t24976/251/1905782409/237076/6ea25334/5bbef5e8N84c72cb7.jpg, price=¥35.00, shop=中国电力出版社)
Product(title=Netty实战 “Netty之父”Trustin Lee作序推荐!含有大量真实的应用和代码示例,附带行业一线公司的案例研究,极实用的Netty技术书, img=//img10.360buyimg.com/n7/jfs/t5227/173/1793618117/453810/1253bd90/59141c1dN7a93c127.jpg, price=¥68.30, shop=人民邮电出版社)
Product(title=明解Java 畅销书《明解C语言》作者人气新作!更适合入门的Java编程书!, img=//img11.360buyimg.com/n7/jfs/t19468/239/87711098/171964/7530d0cd/5a5c6e78Ne4d03861.jpg, price=¥82.90, shop=人民邮电出版社)
Product(title=Java性能优化权威指南 Java性能优化圣经!Java之父重磅推荐!, img=//img10.360buyimg.com/n7/g13/M09/15/1E/rBEhUlMEatcIAAAAAAVMw6OwOPYAAIwSwIOpu0ABUzb978.jpg, price=¥91.30, shop=人民邮电出版社)
Product(title=Java核心技术系列:Java多线程编程核心技术 Java专家10年经验总结,全程案例式讲解,首本全面介绍Java多线程编程技术的专著【本书已更新至第2版】, img=//img14.360buyimg.com/n7/jfs/t1408/343/298344088/165083/8c0b31fa/55726488N4453a762.jpg, price=¥56.90, shop=机械工业出版社)
Product(title=Java从入门到精通 精粹版 Java程序设计从入门到精通 详解Java 9编程思想和核心技术 10万读者认可的编程图书精粹 零基础自学编程的入门图书 配同步视频教程和源代码 海量资源免费赠送, img=//img12.360buyimg.com/n7/jfs/t26734/256/82968212/182207/18ff232c/5b842276N17fb34b2.jpg, price=¥79.00, shop=人民邮电出版社)
Product(title=图解设计模式 Java程序员必读 用Java语言讲解GoF的23种设计模式 194张图表 57张UML类图 通俗易懂 专业实用, img=//img10.360buyimg.com/n7/jfs/t3244/19/4701748027/371568/973000db/585358ebN2d6b6a66.jpg, price=¥66.20, shop=人民邮电出版社)
Product(title=Java多线程与Socket:实战微服务框架 Java,多线程,Socket,微服务, img=//img12.360buyimg.com/n7/jfs/t1/20577/8/12091/276090/5c948e4aE5c9ac9e0/0f37a2243748b9e6.jpg, price=¥95.00, shop=电子工业出版社)
Product(title=Java图像处理:基于OpenCV与JVM 本书提供了常见图像处理问题的Java解决方案、学习实践案例,以及有关使用OpenCV进行图像处理的各种知识。, img=//img13.360buyimg.com/n7/jfs/t1/36863/12/9014/134383/5cce4a10E6da7596c/6efe62222097d1b1.jpg, price=¥81.70, shop=机械工业出版社)
Product(title=Java多线程编程实战指南:设计模式篇(第2版) 本书用Java诠释多线程编程的“三十六计”——多线程设计模式,对每个设计模式的讲解都附有实战案例和源代码解析。, img=//img10.360buyimg.com/n7/jfs/t1/99034/37/17506/143368/5e86ed7aE87dceb91/7d386344d02b743a.jpg, price=¥68.30¥65.60, shop=电子工业出版社)
Product(title=Java轻松学 Java编程从入门到精通 零基础学Java教程 通过开发实际应用和游戏快速上手, img=//img12.360buyimg.com/n7/jfs/t19297/333/2459589723/194078/b7a07be4/5af31c52N2e882cbb.jpg, price=¥49.40, shop=人民邮电出版社)
Product(title=Kotlin实战 首著席卷而来 Android界Swift Java全兼容 谷歌官方头牌 移动开发巨变, img=//img14.360buyimg.com/n7/jfs/t6061/329/6214493869/204427/b10fb30a/59715eb7N3e27da7c.jpg, price=¥70.20, shop=电子工业出版社)
Product(title=漫画面向对象编程 Java语言版 面向对象编程的启蒙读物 以漫画形式展示面向对象编程知识 Java编程思想 学C编程也可以卡通一点姊妹篇, img=//img11.360buyimg.com/n7/jfs/t18859/69/2592777548/1184436/5d575859/5afdb77aN554fdc7c.jpg, price=¥44.50, shop=人民邮电出版社)
Product(title=Java 8入门与实践(微课视频版) 128集同步视频讲解+中小实例+综合样例+源码文件+PPT教学课件+网络教学平台互动学习,另有配套实践实验指导及习题解析,推荐一并购买。, img=//img10.360buyimg.com/n7/jfs/t1/43911/36/3741/215912/5ccfdf5fE0be19d91/4203cdea7b695fbb.jpg, price=¥88.90, shop=中国水利水电出版社)
Process finished with exit code 0
【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo的更多相关文章
- Java网络爬虫 - 一个简单的爬虫例子
WikiScraper.java package master.haku.scrape; import org.jsoup.Jsoup; import org.jsoup.nodes.Document ...
- Python爬虫-爬取京东商品信息-按给定关键词
目的:按给定关键词爬取京东商品信息,并保存至mongodb. 字段:title.url.store.store_url.item_id.price.comments_count.comments 工具 ...
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能.并且在界面上有radio 的选择内容也要上传 uploadify 插件的 下载和文档地址 ...
- JAVA课程设计——一个简单的教务人事管理系统
大三上学期期末总结,没错,上学期,写在下学期新学期开始,哈哈哈. 上学期学习了面向对象程序设计,课程设计的题目使用JAVA语言完成一个简单的教务人事管理系统,能够实现访问数据库的登录验证,分别按部门和 ...
- 使用JAVA实现的一个简单IOC注入实例
https://blog.csdn.net/echoshinian100/article/details/77977823 欲登高而望远,勿筑台于流沙 RSS订阅 原 使用JAVA实现的一个简单IOC ...
- Java RMI 实现一个简单的GFS(谷歌文件系统)——介绍篇
本系列主要是使用Java RMI实现一个简单的GFS(谷歌文件系统,google file system),首先整体简单介绍下该项目. [为了更好的阅读以及查看其他篇章,请查看原文:https://w ...
- Java RMI 实现一个简单的GFS(谷歌文件系统)——背景与设计篇
目录 背景 系统设计 1. 系统功能 2. Master组件 2.1 命名空间 2.2 心跳机制 2.3 故障恢复和容错机制 3. ChunkServer组件 3.1 本地存储 3.2 内存命中机制 ...
- selenium模块使用详解、打码平台使用、xpath使用、使用selenium爬取京东商品信息、scrapy框架介绍与安装
今日内容概要 selenium的使用 打码平台使用 xpath使用 爬取京东商品信息 scrapy 介绍和安装 内容详细 1.selenium模块的使用 # 之前咱们学requests,可以发送htt ...
- selenium+phantomjs爬取京东商品信息
selenium+phantomjs爬取京东商品信息 今天自己实战写了个爬取京东商品信息,和上一篇的思路一样,附上链接:https://www.cnblogs.com/cany/p/10897618. ...
随机推荐
- Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)
1. 主从复制解释 将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...
- Docker(四):Docker安装Redis
查找Redis镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull redis 查看镜像 docker images 创建Redis容器 运行Redis镜像 ...
- bp VNext 入门——让ABP跑起来
因好多群友@我说,ABP他们简单的了解了下,按照官方的教程一路下来跑不起来(倒在了入门的门口),才有了此文. 此文结合官方文档,一步一步带领大家让ABP跑起来(跨过门口). 建议大家一步一步实际动手操 ...
- 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话 ...
- Erlang那些事儿第1回之我是变量,一次赋值永不改变
第1回先从不变的变量说开来,学过其他编程语言的人都知道,变量之所以叫变量,是因为它会经常变,被修改.假设原本X = 10,后来再执行X = 24,那么X就从10变成了24,这对于程序新手和老鸟来说, ...
- Sharding-JDBC使用jasypt3.0及以上版本加密数据库连接密码
本文中介绍的是基于Sharding-JDBC 4.0和jasypt 3.0及其以上版本对数据库连接密码进行加密操作 引入依赖 项目的pom.xml中引入maven依赖 <dependency&g ...
- swift笔记简录
一,变量和常量 /***************************基本数据类型*************************/ /****************************** ...
- Linux下通用二进制方式安装MySQL
1.下载glibc版本的MySQL: https://downloads.mysql.com/archives/community/ 2.查看mysql用户和mysql组是否存在(用户和组的信息存在/ ...
- CountDownLatch深度剖析
场景引入 日常开发中,有个需求,要求主线程开启多个线程去并行执行任务,并且主线程需要等待所有的子线程执行完成后进行汇总.我们很容易找到 jion()方法来实现这个功能 缺点:由于工作中,我们不会直接创 ...
- Java学习_反射
什么是反射? 反射就是Reflection,Java的反射是指程序在运行期可以拿到一个对象的所有信息. 反射是为了解决在运行期,对某个实例一无所知的情况下,如何调用其方法. JAVA反射机制是在运行状 ...