数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫!
爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!)
我们经常需要分析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 - Python技术站