我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用Java爬虫来对比某东上的数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用Java爬虫来对比某东上的数据

本篇内容介绍了“怎么使用Java爬虫来对比某东上的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Java如何做爬虫

大家在想到爬虫的时候,一定想说,爬虫,这东西不是学Python的人员才能做的么?我们Java能做呢?阿粉想告诉大家的是,可以,Java语言这么多年,历时这么久,怎么可能没有这些内容呢,于是阿粉就开始了学习了  Java 的爬虫道路。

Jsoup

阿粉在介绍这个类之前,肯定先得说说我们通常看到的内容是由什么组成的,现在比如说我们做开发的都知道,至少我们在电脑端访问某东,某宝的数据的时候,他们给我们反馈的数据都是通过  HTML 来进行展示的,比如说这个样子:

怎么使用Java爬虫来对比某东上的数据

在开发的肯定都是知道,这些都是些什么意思,阿粉在这里我们就不再进行详细的介绍,说这个 HTML 到底是个啥东西了,阿粉需要介绍的是 Jsoup  ,然后告诉大家怎么使用 Jsoup 这个类爬取京东的数据。

正如官方文档所给我们提示的内容,怎么去解析一段 HTML 代码 :

String html = "<html><head><title>First parse</title></head>"   + "<body><p>Parsed HTML into a doc.</p></body></html>";    Document doc = Jsoup.parse(html);

而这个 Document是什么呢?我们可以输出一下看一眼,顺带着看看源码解释,毕竟嘛,开发人员不看这个类是干嘛的,就不是个合格的程序员不是,

输出内容:

<html>  <head>   <title>First parse</title>  </head>  <body>   <p>Parsed HTML into a doc.</p>  </body> </html>

其实可以看出这里,Document实际上是给我们输出了一个新的文档,而且是整理之后的,相当于为之后的分析 HTML 做了专业的准备。

怎么使用Java爬虫来对比某东上的数据

而我们在看源码的注释的时候,不难看出,Jsoup不单单是能解析我们给的这个字符串,还可以是一个URL,也可以是一个文件。

它把我们给他的 HTML 字符串转换成了一个对象,这个对象就是我们上面看到的 Document,然后我们就可以顺利成章的去使用 Document  对象里面的元素了。

上面是解析字符串,那我们看下面这个解析 URL 的存在:

public static void main(String[] args) {        try {            Document doc = Jsoup.connect("https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_f38cf584e9fb4328a3e0d2bb515e1458").get();            String title = doc.title();            System.out.println(title);        }catch (IOException e){            e.printStackTrace();        }    }

大家执行以下的话,就一定能够看到这个 title 到底是什么,而结果是这个样子的:

怎么使用Java爬虫来对比某东上的数据

和我们在百度搜索的时候是不是不太一样了,因为这个是进入之后的主页。

Element

而在我们看源码的时候,我们能清晰的看到,Document 是继承了 Element 的类,那么必然可以调用 Element 里面的方法,比如说:

getElementById(String id); //是不是有点眼熟,像不像Js里面的ID选择器  getElementsByTag(String tagName);// 通过标签来选择  getAllElements();//获取所有的Element的元素

关于方法,阿粉就不再一一的进行叙述了,大家有兴趣的可以去看看官方文档,或者去看看这个源码,包名送上 package org.jsoup.nodes

有人肯定开始烦了,说阿粉,你就别介绍了,那你说了太多废话了,赶紧介绍爬京东,好的,这就开始,

我们在爬取之前肯定先分析京东的网址,比如说我搜索硬盘:

怎么使用Java爬虫来对比某东上的数据

下面就出来了一堆数据,而我们则需要解析的就是在 HTML 种最有用的那一部分,比如:

<div class="p-price">     <strong class="J_54994027563" data-done="1">         <em>¥</em><i>879.00</i>     </strong> </div>

在这里我们就记下了这个价格,然后我们去找我们要的名字

怎么使用Java爬虫来对比某东上的数据

看,p-name就是我们需要的名字,那么我们就可以写代码了。

//这是京东的搜索网址,我们把这个keyword关键词提取出来,注意中英文,中文要处理一下    String url = "https://search.jd.com/Search?keyword=" + keyword;    url = url + "&enc=utf-8";    Document document = Jsoup.parse(new URL(url), 40000);       //我们先找这个 List,然后一层一层的遍历    Element element = document.getElementById("J_goodsList");    Elements elements = element.getElementsByTag("li");    for (Element el : elements) {        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);     }

大家看执行的效果图:

怎么使用Java爬虫来对比某东上的数据

“怎么使用Java爬虫来对比某东上的数据”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用Java爬虫来对比某东上的数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用Java爬虫来对比某东上的数据

本篇内容介绍了“怎么使用Java爬虫来对比某东上的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java如何做爬虫大家在想到爬虫的时候,
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录