1、前言
该技术博客是根据B站狂神说Java教程的笔记总结,希望能为大家带来帮助!
2、Jsoup实战案例
爬虫可以理解为爬取数据,所谓爬取数据就是:
获取请求返回的页面信息,筛选出我们想要的数据
如果想要爬取数据,需要通过jsoup,所以首先我们需要创建一个maven项目,在maven中导入jsoup依赖jar包:
<!--jsoup:用于解析网页。不能爬取电影、音乐等--><!--如果想要爬取电影音乐资源,需要导入tika依赖--><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.13.1</version></dependency>
我们使用京东页面进行数据爬取展示,网址如下:
/Search?keyword=java
数据爬取案例代码展示如下:
//创建实体类,用于封装页面中需要爬取的数据public class Content {private String title;private String img;private String price;//可以自己酌情添加属性public Content(String title, String img, String price) {this.title = title;this.img = img;this.price = price;}@Overridepublic String toString() {return "Content{" +"title='" + title + '\'' +", img='" + img + '\'' +", price='" + price + '\'' +'}';}}=================================================================================import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import .URL;import java.util.ArrayList;import java.util.List;public class HtmlParseUtil {public static void main(String[] args) throws Exception {//进行测试,调用方法,输入想要爬取数据的关键字HtmlParseUtil util = new HtmlParseUtil();List<Content> list = util.parseJD("三国演义");for (Content content : list) {System.out.println(content);}}public List<Content> parseJD(String keywords) throws Exception {//获取请求,我们使用京东页面作为演示例子:/Search?keyword=[keywords]//注意:爬取数据过程需要联网String url = "/Search?keyword=" + keywords;//得到url后,解析网页,该 Document对象 就是浏览器 Document对象Document document = Jsoup.parse(new URL(url), 30000);Element element = document.getElementById("J_goodsList");//获取所有的li元素Elements elements = element.getElementsByTag("li");//创建ArrayList集合,将所有的查询对象添加到集合中ArrayList<Content> goodsList = new ArrayList<>();//获取li元素中的内容,这里的el就是每一个li元素for (Element el : elements) {//关于这种图片特别多的网站,所有的图片都是延时加载的//代码中的p-price,p-name等属性名是通过手动审查网页元素得到String img = el.getElementsByTag("img").eq(0).attr("data-lazy-img");String price = el.getElementsByClass("p-price").eq(0).text();String title = el.getElementsByClass("p-name").eq(0).text();goodsList.add(new Content(title, img, price));}return goodsList;}}
输出结果如下:
Content{title='三国演义(套装上下册)(全二册)(中国古典文学读本丛书,1-9年级必读书单) 三国演义(套装上下册)(全二册)(中国古典文学读本丛书,1-9年级必读书单)', img='///n1/s200x200_jfs/t1/54594/9/2803/246916/5d0a1635E98b4dc52/095f4cc72141902f.jpg', price='¥32.00'}Content{title='三国演义(上下册)(四大名著原著大字本:《语文》推荐阅读丛书 ) 四大名著大字本,教育部统编语文推荐阅读;内容经典,字大行疏,阅读舒适(随书附赠:《三国演义地图》+《三国时期大事年表》)', img='///n1/s200x200_jfs/t1/56082/2/5824/222939/5d36afd7E6dabc2e3/79b0dbeec5f3a45d.jpg', price='¥67.30'}Content{title='完整无删减四大名著全套原著正版 初中生版三国演义西游记水浒传红楼梦正版注音注释小学生四大名著文言文', img='///n1/s200x200_jfs/t1/162155/1/15679/301700/6065278aE99eddbea/601d9628cfa862f2.jpg', price='¥188.00'}Content{title='三国演义(新版,易中天推荐版本) 以毛本为底本,结合明代嘉靖本、《三国志》等综合汇校,恢复罗贯中笔下丰富立体的重要人物形象。原创绘制53幅战役细节图轻松了解战争全貌。', img='///n1/s200x200_jfs/t1/167308/5/3682/285853/60094d48E69a6783b/1585b58c6bf9a577.jpg', price='¥128.00'}Content{title='附赠地图三国演义(上下) 原著四大名著完整版120回带注解 适用中学生阅读文言文白话文 人民文学出版 附赠人物关系图点击查看三国演义(上下)+红楼梦(上下)共四册,原版原著无删减人民文学出版三国演义(上下)+红楼梦(上下)共四册,原版原著无删减', img='///n1/s200x200_jfs/t1/167460/36/6652/649699/60305acdEfa62a6fd/2fe9b6e211bc8bee.png', price='¥23.80'}Content{title='凯叔三国演义全集1-16(套装共16册,故事大王凯叔白话文版三国演义) 3000万家长喜爱的凯叔讲三国演义,同名音频节目全网热销10万单。 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t1/62383/20/10571/473164/5d7ef051E573df628/47e167078abfcc97.jpg', price='¥523.50'}Content{title='三国演义幼儿美绘本 套装全10册中国四大名著彩绘注音版有声伴读 3-6岁儿童绘本幼小衔接包邮 画给3-8岁孩子的中华经典名著,大字注音,有声伴读,41款夸张角色,600余张精美插图,29个三国问答,10大智力挑战,以一种超有趣的方式亲近名著经典。', img='///n1/s200x200_jfs/t1/156113/8/12402/404575/60408d3dE64dbb64c/88127e66c1933e1e.jpg', price='¥146.60'}Content{title='三国演义连环画60册 函装蓝皮珍藏老版怀旧四大名著连环画小人书全套经典儿童故事绘本漫画课外读物上海人民美术出版社 四大名著连环画小人书全套经典儿童故事绘本漫画课外读物,经典文学连环画小人书重温儿时经典64开 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t24994/176/468629036/282859/9632737a/5b70efffNab3a910a.jpg', price='¥140.10'}Content{title='三国演义(套装上下册)(四大名著珍藏版) 三国演义(套装上下册)(四大名著珍藏版)', img='///n1/s200x200_jfs/t14908/140/1805436643/298667/d338c47b/5a5c51aeN82065441.jpg', price='¥149.90'}Content{title='三国演义(上下)(《语文》推荐阅读丛书 人民文学出版社) 100册以上团购优惠联系电话4006186622三国演义/四部古典/人民文学出版社版/版本完善,编校精良,助力成长', img='///n1/s200x200_jfs/t1/129878/18/7185/159574/5f38b2d0E1c1977ae/8eb7021e61ba19c0.jpg', price='¥48.00'}Content{title='四大名著全套小学生版原著正版青少年儿童版白话文水浒传红楼梦西游记三国演义小学生世界名著小说 四大名著全套小学生版原著正版青少年儿童版白话文水浒传红楼梦西游记三国演义小学生世界名著小说', img='///n1/s200x200_jfs/t1/120726/1/15957/259183/5f9394e7E68a82bea/86c17acf56bbe577.png', price='¥48.80'}Content{title='四大名著青少版 三四五六年级课外书 儿童读物10-14岁 美绘插图三国演义水浒传红楼梦西游记原著 正版 618限时钜惠!全场领券满99-10!', img='///n1/s200x200_jfs/t1/186871/10/9576/260100/60d0457dE654a5a34/667edb41056abfb6.jpg', price='¥148.00'}Content{title='精装四大名著全套原著版正版少儿青少年版原版学生版全集套装4中国古典文学历史书籍小说三国演义', img='///n1/s200x200_jfs/t16447/238/1022153067/404527/1e971c4b/5a4d8323N8d188fcc.jpg', price='¥98.00'}Content{title='三国演义( 精装四大名著 足本典藏 无障碍阅读 注音解词释疑) 严格依据三国演义原著,文中加入刻本绣像,与原文相得益彰,不仅美观,还能增进对文章的理解。百年老舍商务印书馆品质保证 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t5722/315/350498085/369749/4653240c/591ebf98Nff38b7d6.jpg', price='¥27.00'}Content{title='中国四大古典名著连环画 礼盒套装全136册 徐宏达 西游记水浒传三国演义红楼梦连环画小人书老版怀旧经典收藏版 名家图画四大名著数代国人的审美启蒙读物,礼盒套装全136册徐宏达西游记水浒传三国演义红楼梦连环画小人书老版怀旧经典收藏版', img='///n1/s200x200_jfs/t1/10797/1/6724/87409/5c24083cE09cb99d1/d2ea2265385befbe.jpg', price='¥260.00'}Content{title='中国古典文学读本丛书:四大名著权威定本(红楼梦+三国演义+水浒传+西游记)(套装共8册) 中国古典文学读本', img='///n1/s200x200_jfs/t1/52144/5/2758/238626/5d0a157aE9c12b5e6/e08cae235dd1456a.jpg', price='¥159.70'}Content{title='李鹏飞给孩子讲三国演义(全6册,赠考点一本通、三国演义主要人物图谱、音频课) 北京大学教授、中国古代文学专家——李鹏飞,带孩子真正读懂《三国演义》,提升语文素养,掌握应试技能!罗振宇、张泉灵、高考语文名师申怡等推荐阅读!', img='///n1/s200x200_jfs/t1/172825/32/6008/169826/60823eb2E55f122ef/a035ecf466ef5bbf.jpg', price='¥285.10 ¥278.00'}Content{title='三国演义(套装上下册) 中国古代小说名著插图典藏系列', img='///n1/s200x200_jfs/t1/78862/6/9172/488636/5d6e05d4E31443e8d/a14ff6dd5177bae0.jpg', price='¥32.40'}Content{title='大字足本无删减版 中国四大名著三国演义水浒传西游记红楼梦全套原著正版文言文学生无障碍阅读珍藏版', img='///n1/s200x200_jfs/t1/118752/11/2179/155846/5ea00ef2E0a2d8de1/f8ebb29d0ce607ed.jpg', price='¥228.00'}Content{title='四大名著(全四册 精装彩色插图珍藏本 附赠精美书签)西游记+红楼梦+水浒传+三国演义 完整无删减,每册书后均附有人物关系图,并附赠人物关系图小册子。古典绣像插图,生动形象。无障碍阅读,注音释义,通俗易懂。锁线装订,结实耐用。', img='///n1/s200x200_jfs/t1/141487/16/14134/526198/5faba12aEd0bc4168/e09ee74a3e799e33.jpg', price='¥196.20'}Content{title='三国演义/快乐读书吧五年级下册无障碍阅读学生版儿童文学四大名著(无障碍阅读彩插本) 儿童文学课外阅读精读版。新老版本随机发货,封面不同内容一致100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t1/114747/16/13471/118607/5f238c23Ec03fb43b/2e8c86a16d8db852.jpg', price='¥18.60'}Content{title='漫画中国古典名著:西游记 三国演义 水浒传 红楼梦(套装共4册) 薇娅推荐100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t1/123178/6/19726/269260/5fbb5345E8c9692bc/bf9397b8dcd1cea6.jpg', price='¥120.00'}Content{title='学生基础阅读书目·中国古典文学经典名著·适合青少年阅读白话美绘版·四大名著·上下卷:三国演义 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t19756/212/1271659156/246824/a804b94d/5ac429aeN85a04c72.jpg', price='¥79.80'}Content{title='三国演义 精装硬壳 原著无删减 文白对照 全注全译 中国古典小说经典名著 中国文联 三国演义 精装硬壳 原著无删减 文白对照 全注全译 中国古典小说经典名著 中国文联', img='///n1/s200x200_jfs/t1/129232/3/18302/215793/5faf39d0E3c8f534e/d5b820bd609dbb5a.jpg', price='¥18.80'}Content{title='三国演义 原著青少年版高中成人原文无删减无障碍学生版原文注释生僻字注音解释 精装', img='///n1/s200x200_jfs/t1/3907/11/9084/513022/5bab444bEa78e1a20/9296fc46957b19b5.png', price='¥26.10'}Content{title='四大名著青少版:西游记+红楼梦+水浒传+三国演义 快乐读书吧五年级下册阅读 新老版本随机发智慧熊图书 汪峰推荐,章节导读,增加读后感,增加成长启示和写作积累单元,书末加入知识考点查漏补缺。培养孩子坚强品格。五年级单品100册以上请打优惠电话4006186622', img='///n1/s200x200_jfs/t1/157616/18/17357/297951/606ea2acE0ec53a40/ba72fb91679e56c3.jpg', price='¥44.40'}Content{title='三国演义/全本无删减 无障碍阅读 五年级下必读 (赠京师大讲堂视频解析) 北京市特级教师视频讲解,为学生扫清阅读障碍。北师大文学博士王海洋通过导读、注释、评析解读整本书,帮学生领悟名著精髓,经典版本精心呈现。 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t1/132370/21/9433/467397/5f57379fEb646e7ae/dbcfd7eb92f3876f.jpg', price='¥41.10'}Content{title='三国演义(青少年无障碍阅读版 新课标必读) 白话文,生僻字注音,任务关系图,好读易懂的四大名著 100册以上团购优惠联系电话4006186622', img='///n1/s200x200_jfs/t3331/245/1086508122/304733/9b91e634/581c4edbN814ce19f.jpg', price='¥29.80'}Content{title='四大名著全套小学生版注音版4册西游记三国演义水浒传红楼梦完整版原著正版儿童版带拼音青少年版小学课外书 学生少儿课外阅读书籍学校指定小学生版加厚注音全套4册', img='///n1/s200x200_jfs/t1/135995/26/19472/319879/5fd46ec0Efb7e3f01/8b8a42d1f5279439.jpg', price='¥129.80'}Content{title='全套四大名著儿童版注音原著西游记三国演义红楼梦水浒传青少版一年级二年级课外书7-10岁阅读儿童书籍 四大名著 全套四大名著儿童版注音原著西游记三国演义红楼梦水浒传青少版一年级二年级课外书7-10岁阅读儿童书籍 四大名著', img='///n1/s200x200_jfs/t1/186710/18/4064/225439/60a4bbf3E2cd54784/399caed6347035a7.jpg', price='¥48.00 ¥45.60'}