Java爬虫系列三:使用Jsoup解析HTML

Java爬虫系列三:使用Jsoup解析HTML

在上一篇随笔《Java爬虫系列二:使用HttpClient抓取页面HTML》中介绍了怎么使用HttpClient进行爬虫的第一步--抓取页面html,今天接着来看下爬虫的第二步--解析抓取到的html。

有请第二步的主角:Jsoup粉墨登场。下面我们把舞台交给Jsoup,让他完成本文剩下的内容。

============华丽的分割线=============

一、Jsoup自我介绍

大家好,我是Jsoup。

我是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据,用Java写爬虫的同行们十之八九用过我。为什么呢?因为我在这个方面功能强大、使用方便。不信的话,可以继续往下看,代码是不会骗人的。

二、Jsoup解析html

上一篇中,HttpClient大哥已经抓取到了博客园首页的html,但是一堆的代码,不是程序员的人们怎么能看懂呢?这个就需要我这个html解析专家出场了。

下面通过案例展示如何使用Jsoup进行解析,案例中将获取博客园首页的标题和第一页的博客文章列表

Java爬虫系列三:使用Jsoup解析HTML_第1张图片

 

请看代码(在上一篇代码的基础上进行操作,如果还不知道如何使用httpclient的朋友请跳转页面进行阅读):

  1. 引入依赖
    
        org.jsoup
        jsoup
        1.12.1
    

     

  2. 实现代码。实现代码之前首先要分析下html结构。标题是不用说了,那文章列表呢?按下浏览器的F12,查看页面元素源码,你会发现列表是一个大的div,id="post_list",每篇文章是小的div,class="post_item"<a href="http://img.e-com-net.com/image/info8/579726cc538d45669476e157dcbf5631.jpg" target="_blank"><img alt="Java爬虫系列三:使用Jsoup解析HTML_第2张图片" class="has" src="http://img.e-com-net.com/image/info8/579726cc538d45669476e157dcbf5631.jpg" width="650" height="331" style="border:1px solid black;"></a><p>接下来就可以开始代码了,Jsoup核心代码如下(整体源码会在文章末尾给出):</p> <pre><code class="language-html hljs">/** * 下面是Jsoup展现自我的平台 */ //6.Jsoup解析html Document document = Jsoup.parse(html); //像js一样,通过标签获取title System.out.println(document.getElementsByTag("title").first()); //像js一样,通过id 获取文章列表元素对象 Element postList = document.getElementById("post_list"); //像js一样,通过class 获取列表下的所有博客 Elements postItems = postList.getElementsByClass("post_item"); //循环处理每篇博客 for (Element postItem : postItems) { //像jquery选择器一样,获取文章标题元素 Elements titleEle = postItem.select(".post_item_body a[class='titlelnk']"); System.out.println("文章标题:" + titleEle.text());; System.out.println("文章地址:" + titleEle.attr("href")); //像jquery选择器一样,获取文章作者元素 Elements footEle = postItem.select(".post_item_foot a[class='lightblue']"); System.out.println("文章作者:" + footEle.text());; System.out.println("作者主页:" + footEle.attr("href")); System.out.println("*********************************"); }</code></pre> <p>根据以上代码你会发现,我通过Jsoup.parse(String html)方法对httpclient获取到的html内容进行解析获取到Document,然后document可以有两种方式获取其子元素:像js一样 可以通过getElementXXXX的方式 和 像jquery 选择器一样通过select()方法。 无论哪种方法都可以,我个人推荐用select方法处理。对于元素中的属性,比如超链接地址,可以使用element.attr(String)方法获取, 对于元素的文本内容通过element.text()方法获取。</p> </li> <li>执行代码,查看结果(不得不感慨博客园的园友们真是太厉害了,从上面分析首页html结构到Jsoup分析的代码执行完,这段时间首页多了那么多文章)<a href="http://img.e-com-net.com/image/info8/dbd73ff7bcc6442394ae7cc1d2339fc1.jpg" target="_blank"><img alt="Java爬虫系列三:使用Jsoup解析HTML_第3张图片" class="has" src="http://img.e-com-net.com/image/info8/dbd73ff7bcc6442394ae7cc1d2339fc1.jpg" width="650" height="387" style="border:1px solid black;"></a><p>由于新文章发布的太快了,导致上面的截图和这里的输出有些不一样。</p> </li> </ol> <p> </p> <p><strong>三、Jsoup的其他用法</strong></p> <p>我,Jsoup,除了可以在httpclient大哥的工作成果上发挥作用,我还能自己独立干活,自己抓取页面,然后自己分析。分析的本领已经在上面展示过了,下面来展示自己抓取页面,其实很简单,所不同的是我直接获取到的是document,不用再通过Jsoup.parse()方法进行解析了。</p> <p><a href="http://img.e-com-net.com/image/info8/417e56bd37d04f9ab503253a435e2359.jpg" target="_blank"><img alt="Java爬虫系列三:使用Jsoup解析HTML_第4张图片" class="has" src="http://img.e-com-net.com/image/info8/417e56bd37d04f9ab503253a435e2359.jpg" width="650" height="302" style="border:1px solid black;"></a></p> <p>除了能直接访问网上的资源,我还能解析本地资源:</p> <p>代码:</p> <pre><code class="language-html hljs">public static void main(String[] args) { try { Document document = Jsoup.parse(new File("d://1.html"), "utf-8"); System.out.println(document); } catch (IOException e) { e.printStackTrace(); } }</code></pre> <p> </p> <p><strong>四、Jsoup另一个值得一提的功能</strong></p> <p> 你肯定有过这种经历,在你的页面文本框中,如果输入html元素的话,保存后再查看很大概率会导致页面排版乱七八糟,如果能对这些内容进行过滤的话,就完美了。</p> <p>刚好我Jsoup就能做到。</p> <pre><code class="language-html hljs">public static void main(String[] args) { String unsafe = "<p><a href='网址' οnclick='stealCookies()'>博客园</a></p>"; System.out.println("unsafe: " + unsafe); String safe = Jsoup.clean(unsafe, Whitelist.basic()); System.out.println("safe: " + safe); }</code></pre> <p>通过Jsoup.clean方法,用一个白名单进行过滤。执行结果:</p> <pre><code class="language-html hljs">unsafe: <p><a href='网址' οnclick='stealCookies()'>博客园</a></p> safe: <p><a rel="nofollow">博客园</a></p></code></pre> <p> </p> <p><strong>五、结束语</strong></p> <p> 通过以上大家相信我很强大了吧,不仅可以解析HttpClient抓取到的html元素,我自己也能抓取页面dom,我还能load并解析本地保存的html文件。</p> <p>此外,我还能通过一个白名单对字符串进行过滤,筛掉一些不安全的字符。</p> <p>最最重要的,上面所有功能的API的调用都比较简单。</p> <p> </p> <p>============华丽的分割线=============</p> <p>码字不易,点个赞再走呗~~</p> <p>最后,附上案例中 解析博客园首页文章列表的完整源码:</p> <p><img alt="" class="code_img_closed" id="code_img_closed_075a2c50-6bac-4fa5-825d-2d83f50c8af1" src="http://img.e-com-net.com/image/info8/b8d97b5613f94ed2ba791cad57d0b2ed.gif" width="11" height="16"><img alt="" class="code_img_opened" id="code_img_opened_075a2c50-6bac-4fa5-825d-2d83f50c8af1" src="http://img.e-com-net.com/image/info8/2f88dd3f1cd145f59c0e47b51acdbd4b.gif" width="11" height="16"></p> <pre><code class="language-html hljs">package httpclient_learn; import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.HttpClientUtils; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class HttpClientTest { public static void main(String[] args) { //1.生成httpclient,相当于该打开一个浏览器 CloseableHttpClient httpClient = HttpClients.createDefault(); CloseableHttpResponse response = null; //2.创建get请求,相当于在浏览器地址栏输入 网址 HttpGet request = new HttpGet("https://www.cnblogs.com/"); //设置请求头,将爬虫伪装成浏览器 request.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"); // HttpHost proxy = new HttpHost("60.13.42.232", 9999); // RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); // request.setConfig(config); try { //3.执行get请求,相当于在输入地址栏后敲回车键 response = httpClient.execute(request); //4.判断响应状态为200,进行处理 if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { //5.获取响应内容 HttpEntity httpEntity = response.getEntity(); String html = EntityUtils.toString(httpEntity, "utf-8"); System.out.println(html); /** * 下面是Jsoup展现自我的平台 */ //6.Jsoup解析html Document document = Jsoup.parse(html); //像js一样,通过标签获取title System.out.println(document.getElementsByTag("title").first()); //像js一样,通过id 获取文章列表元素对象 Element postList = document.getElementById("post_list"); //像js一样,通过class 获取列表下的所有博客 Elements postItems = postList.getElementsByClass("post_item"); //循环处理每篇博客 for (Element postItem : postItems) { //像jquery选择器一样,获取文章标题元素 Elements titleEle = postItem.select(".post_item_body a[class='titlelnk']"); System.out.println("文章标题:" + titleEle.text());; System.out.println("文章地址:" + titleEle.attr("href")); //像jquery选择器一样,获取文章作者元素 Elements footEle = postItem.select(".post_item_foot a[class='lightblue']"); System.out.println("文章作者:" + footEle.text());; System.out.println("作者主页:" + footEle.attr("href")); System.out.println("*********************************"); } } else { //如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略 System.out.println("返回状态不是200"); System.out.println(EntityUtils.toString(response.getEntity(), "utf-8")); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //6.关闭 HttpClientUtils.closeQuietly(response); HttpClientUtils.closeQuietly(httpClient); } } }</code></pre> <p>View Code</p> <p> </p> <p>posted @ 2019-05-25 16:08 JAVA开发老菜鸟 阅读(...) 评论(...) 编辑 收藏</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1187401247402074112"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Java爬虫)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901228451973623808.htm" title="利用Java爬虫根据关键词获取商品列表:实战指南" target="_blank">利用Java爬虫根据关键词获取商品列表:实战指南</a> <span class="text-muted">数据小爬虫@</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,通过关键词搜索商品并获取商品列表是常见的需求。本文将详细介绍如何使用Java编写爬虫程序,根据关键词获取商品列表,并确保爬虫行为符合平台规范。为了确保代码的准确性和实用性,我们将提供详细的代码示例和解释。一、环境准备(一)Java开发环境确保你的系统中已安装Java开发环境,推荐使用JDK11或更高版本。(二)安装所需库使用Maven管理项目依赖,主要包括以下库:Jsoup:用于解析H</div> </li> <li><a href="/article/1899367277074116608.htm" title="利用Java爬虫获取衣联网商品详情:实战指南" target="_blank">利用Java爬虫获取衣联网商品详情:实战指南</a> <span class="text-muted">Jason-河山</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,获取商品详情是数据分析和市场研究的重要环节。衣联网作为知名的电商平台,提供了丰富的服装商品资源。本文将详细介绍如何利用Java编写爬虫程序,通过商品ID获取衣联网商品详情。一、准备工作(一)环境搭建Java安装:确保已安装Java开发环境,推荐使用JDK11或更高版本。开发工具配置:使用IntelliJIDEA或Eclipse等Java开发工具,创建一个新的Maven项目。依赖库添加:</div> </li> <li><a href="/article/1897897077564829696.htm" title="利用Java爬虫根据关键词获取17网(17zwd)商品列表:实战指南" target="_blank">利用Java爬虫根据关键词获取17网(17zwd)商品列表:实战指南</a> <span class="text-muted">小爬虫程序猿</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,通过关键词搜索商品并获取商品列表是常见的需求。17网(17zwd)作为知名的电商平台,提供了丰富的商品资源。本文将详细介绍如何使用Java爬虫技术根据关键词获取17网商品列表,并确保爬虫行为符合平台规范。一、环境准备(一)Java开发环境确保你的系统中已安装Java开发环境(推荐使用JDK1.8及以上版本)。(二)安装所需依赖使用Maven管理项目依赖,主要包括以下库:Jsoup:用于</div> </li> <li><a href="/article/1897447485866045440.htm" title="利用爬虫按图搜索1688商品(拍立淘):实战指南" target="_blank">利用爬虫按图搜索1688商品(拍立淘):实战指南</a> <span class="text-muted">Jason-河山</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%90%9C%E7%B4%A2%E7%AE%97%E6%B3%95/1.htm">图搜索算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>在电商领域,按图搜索商品(拍立淘)是一种非常实用的功能,尤其适合用户通过图片快速查找相似商品。1688开放平台提供了按图搜索商品的API接口,允许开发者通过图片获取相关的商品信息。本文将详细介绍如何使用Java爬虫技术调用1688的按图搜索API接口,并解析返回的数据。一、前期准备(一)Java开发环境确保已安装Java开发环境,推荐使用JDK1.8或更高版本。(二)依赖管理使用Maven或Gra</div> </li> <li><a href="/article/1897447486499385344.htm" title="利用Java爬虫按图搜索1688商品(拍立淘):实战指南" target="_blank">利用Java爬虫按图搜索1688商品(拍立淘):实战指南</a> <span class="text-muted">Jason-河山</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%90%9C%E7%B4%A2%E7%AE%97%E6%B3%95/1.htm">图搜索算法</a> <div>在电商领域,按图搜索商品(拍立淘)已成为一种重要的功能,尤其适合用户通过图片快速查找相似商品。1688开放平台提供了按图搜索商品的API接口,允许开发者通过图片获取相关的商品信息。本文将详细介绍如何使用Java爬虫技术调用1688的按图搜索API接口,并解析返回的数据。一、前期准备1.Java开发环境确保已安装Java开发环境,推荐使用JDK1.8或更高版本。2.依赖管理使用Maven或Gradl</div> </li> <li><a href="/article/1897444460363575296.htm" title="如何利用Java爬虫按图搜索1688商品(拍立淘):实战指南" target="_blank">如何利用Java爬虫按图搜索1688商品(拍立淘):实战指南</a> <span class="text-muted">数据小爬虫@</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%90%9C%E7%B4%A2%E7%AE%97%E6%B3%95/1.htm">图搜索算法</a> <div>在电商领域,按图搜索商品(类似“拍立淘”功能)是一种非常实用的功能,尤其适合用户通过图片快速查找相似商品。1688开放平台提供了按图搜索商品的API接口,允许开发者通过图片获取相关的商品信息。本文将详细介绍如何使用Java爬虫技术调用1688的按图搜索API接口,并解析返回的数据。一、前期准备(一)Java开发环境确保已安装Java开发环境,推荐使用JDK1.8或更高版本。(二)依赖管理使用Mav</div> </li> <li><a href="/article/1896993944688979968.htm" title="如何使用Java爬虫处理API接口返回的JSON数据?" target="_blank">如何使用Java爬虫处理API接口返回的JSON数据?</a> <span class="text-muted">小爬虫程序猿</span> <a class="tag" taget="_blank" href="/search/API/1.htm">API</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>处理API接口返回的JSON数据是Java爬虫开发中的一个常见任务。在Java中,有多个库可以帮助我们解析JSON数据,其中最流行的是Jackson和Gson。以下是使用这两个库处理JSON数据的基本步骤和示例代码。使用Jackson处理JSONJackson是一个功能强大的JSON处理库,它不仅可以将JSON字符串解析为Java对象,还可以将Java对象转换为JSON字符串。添加Jackson依</div> </li> <li><a href="/article/1896806182954266624.htm" title="通过java下载B站视频" target="_blank">通过java下载B站视频</a> <span class="text-muted">KeepeVile</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a> <div>本项目分为以下几点获取Bvid获取Cid获取视频原始链接使用Java下载视频文件1.获取Bvid我们首先需要获取Bvid,也就是视频id,如果只想下载一个指定的视频那么直接输入Bvid即可。如果需要批量下载那么就需要程序帮我们抓取Bvid,关于如何使用爬虫爬取我们需要的信息,可以参考我的另一篇文章:通过Java爬虫实现51job申请职位的第四部分获取Bvid2.获取Cid这里我们需要用到一条api</div> </li> <li><a href="/article/1896252474663170048.htm" title="Java爬虫——jsoup" target="_blank">Java爬虫——jsoup</a> <span class="text-muted">xxxmine</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JSoup是一个用于处理HTML的Java库,它提供了一个非常方便类似于使用DOM,CSS和jquery的方法的API来提取和操作数据。Jsoup能做什么?从URL、文件或字符串中抓取和解析HTML(爬虫)使用DOM遍历或CSS选择器查找和提取数据操作HTML元素、属性和文本根据安全列表清理用户提交的内容,以防止XSS攻击输出整洁的网页Jsoup相关概念Document:文档对象。每份HTML页面</div> </li> <li><a href="/article/1894561756764762112.htm" title="利用Java爬虫精准获取商品销量详情:实战案例指南" target="_blank">利用Java爬虫精准获取商品销量详情:实战案例指南</a> <span class="text-muted">小爬虫程序猿</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,商品销量数据是衡量产品受欢迎程度和市场表现的关键指标。精准获取商品销量详情不仅能帮助商家优化产品策略,还能为市场研究和数据分析提供丰富的数据资源。本文将详细介绍如何利用Java爬虫技术精准获取商品销量详情,并分享关键技术和代码示例。一、前期准备(一)环境搭建确保你的开发环境已安装以下必要的Java库:Jsoup:用于解析HTML页面。HttpClient:用于发送HTTP请求。Log4</div> </li> <li><a href="/article/1894561377490628608.htm" title="利用Java爬虫获取Amazon商品详情:实战案例指南" target="_blank">利用Java爬虫获取Amazon商品详情:实战案例指南</a> <span class="text-muted">数据小小爬虫</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,Amazon作为全球最大的电商平台之一,其商品详情数据对于市场分析、竞争策略制定以及电商运营优化具有极高的价值。通过Java爬虫技术,我们可以高效地获取这些数据,为电商从业者提供强大的数据支持。本文将详细介绍如何利用Java爬虫技术获取Amazon商品详情数据。一、准备工作(一)环境搭建确保你的开发环境中已经安装了以下必要的Java库:Jsoup:用于解析HTML页面。HttpClie</div> </li> <li><a href="/article/1894561378023305216.htm" title="使用Java爬虫获取淘宝商品详情API返回值说明案例指南" target="_blank">使用Java爬虫获取淘宝商品详情API返回值说明案例指南</a> <span class="text-muted">数据小小爬虫</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商数据分析和运营中,获取淘宝商品详情是常见的需求。淘宝开放平台提供了丰富的API接口,允许开发者通过合法的方式获取商品信息。本文将详细介绍如何使用Java编写爬虫,通过淘宝API获取商品详情,并解析API返回值的含义和结构。一、准备工作在开始编写爬虫之前,需要准备以下工具和库:Java开发环境:推荐使用IDEA或Eclipse。HttpClient库:用于发送HTTP请求。Jsoup库:用于解</div> </li> <li><a href="/article/1894560747363561472.htm" title="利用Java爬虫精准获取淘宝分类详情:实战案例指南" target="_blank">利用Java爬虫精准获取淘宝分类详情:实战案例指南</a> <span class="text-muted">Jason-河山</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,淘宝作为中国最大的电商平台之一,其分类详情数据对于市场分析、竞争策略制定以及电商运营优化具有极高的价值。通过Java爬虫技术,我们可以高效地获取这些数据,为电商从业者提供强大的数据支持。本文将详细介绍如何利用Java编写爬虫程序,快速获取淘宝分类详情数据。一、准备工作(一)环境搭建确保你的开发环境中已经安装了以下必要的库:HttpClient:用于发送HTTP请求。Jsoup:用于解析</div> </li> <li><a href="/article/1891430131906441216.htm" title="分享一些处理复杂HTML结构的经验" target="_blank">分享一些处理复杂HTML结构的经验</a> <span class="text-muted">数据小爬虫@</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在处理复杂HTML结构时,尤其是使用Java爬虫和Jsoup进行数据抓取时,以下是一些实用的经验和技巧,可以帮助你更高效地解析和提取数据:1.缩小解析范围对于复杂的HTML结构,尽量缩小解析范围,只解析所需的元素。使用CSS选择器来定位所需的元素,而不是对整个文档进行解析。2.使用Jsoup的选择器功能Jsoup提供了强大的选择器功能,可以用来处理嵌套的DOM元素。例如,你可以使用select方法</div> </li> <li><a href="/article/1890014487415681024.htm" title="利用Java爬虫按图搜索1688商品(拍立淘):实战案例指南" target="_blank">利用Java爬虫按图搜索1688商品(拍立淘):实战案例指南</a> <span class="text-muted">数据小小爬虫</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E6%90%9C%E7%B4%A2%E7%AE%97%E6%B3%95/1.htm">图搜索算法</a> <div>在电商领域,按图搜索功能(如1688的“拍立淘”)为用户提供了更直观、便捷的购物体验。通过上传图片,用户可以快速找到与图片相似的商品。本文将详细介绍如何利用Java爬虫技术实现按图搜索1688商品,并获取其详情数据。一、为什么选择Java爬虫?Java作为一种广泛使用的编程语言,以其稳健性和跨平台性在企业级应用中占据重要地位。通过Java,我们可以编写爬虫程序,模拟浏览器行为,从网页中提取所需的数</div> </li> <li><a href="/article/1885609238282170368.htm" title="XXL-CRAWLER v1.4.0 | Java爬虫框架" target="_blank">XXL-CRAWLER v1.4.0 | Java爬虫框架</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E7%88%AC%E8%99%ABjava/1.htm">后端爬虫java</a> <div>ReleaseNotes1、【提升】爬虫JS渲染能力强化:升级提供"Selenium+ChromeDriver"方案支持JS渲染,兼容性更高,废弃旧Phantomjs方案。非JS渲染场景仍然Jsoup,速度更快。同时支持自由扩展其他实现。2、【优化】进一步优化Selenium兼容问题,完善JS渲染场景下兼容性和性能。3、【重构】重构核心功能模块,提升扩展性;修复历史代码隐藏问题,提升系统稳定习惯。</div> </li> <li><a href="/article/1884457598321750016.htm" title="java爬虫破解滑块验证码_计算缺口滑块图和完整滑块图者差距" target="_blank">java爬虫破解滑块验证码_计算缺口滑块图和完整滑块图者差距</a> <span class="text-muted">2401_86372526</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>#slider{position:relative;background-color:#e8e8e8;width:300px;height:34px;line-height:34px;text-align:center;}#slider.handler{position:absolute;top:0px;left:0px;width:40px;height:32px;border:1pxsolid</div> </li> <li><a href="/article/1884359445119561728.htm" title="java爬虫jsoup_Java爬虫框架Jsoup学习记录" target="_blank">java爬虫jsoup_Java爬虫框架Jsoup学习记录</a> <span class="text-muted">weixin_33638349</span> <div>Jsoup的作用当你想获得某网页的内容,可以使用此框架做个爬虫程序,爬某图片网站的图片(先获得图片地址,之后再借助其他工具下载图片)或者是小说网站的小说内容我使用Jsoup写出的一款小说下载器,小说下载器Jsoup导入1.使用gradle导入compile'org.jsoup:jsoup:1.11.1'2.第三方包导入Jsoup使用1.获得Document本地html文件或者使用javaIO流,则</div> </li> <li><a href="/article/1884346322304167936.htm" title="java爬虫工具Jsoup学习" target="_blank">java爬虫工具Jsoup学习</a> <span class="text-muted">Future_yzx</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>目录前言一、基本使用二、爬取豆瓣电影的案例三、Jsoup能做什么?四、Jsoup相关概念五、Jsoup获取文档六、定位选择元素七、获取数据八、具体案例前言JSoup是一个用于处理HTML的Java库,它提供了一个非常方便类似于使用DOM,CSS和jquery的方法的API来提取和操作数据。一、基本使用org.jsoupjsoup1.13.1二、爬取豆瓣电影的案例publicclassDouBan{</div> </li> <li><a href="/article/1881283659340771328.htm" title="如何使用Java爬虫获取微店商品详情:代码示例与实践指南" target="_blank">如何使用Java爬虫获取微店商品详情:代码示例与实践指南</a> <span class="text-muted">小爬虫程序猿</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在电商领域,获取商品详情数据对于商家和开发者来说至关重要。微店作为国内知名的电商平台,提供了丰富的商品数据接口,方便开发者通过API调用获取商品详情。以下将详细介绍如何使用Java爬虫获取微店商品详情,并提供具体的代码示例。一、微店商品详情API接口简介微店提供了商品详情API接口(micro.item.get),用于获取指定商品的详细信息。通过该接口,开发者可以快速获取商品的标题、价格、库存、描</div> </li> <li><a href="/article/1881091366155513856.htm" title="如何使用Java爬虫获取阿里巴巴热卖商品推荐:代码示例与实践指南" target="_blank">如何使用Java爬虫获取阿里巴巴热卖商品推荐:代码示例与实践指南</a> <span class="text-muted">小爬虫程序猿</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>在电商领域,获取热卖商品推荐对于商家和开发者来说至关重要。阿里巴巴提供了热卖商品推荐API接口,能够根据消费者的购买历史、浏览行为、搜索习惯等数据,自动推荐符合其需求的商品。以下将详细介绍如何使用Java爬虫获取阿里巴巴热卖商品推荐,并提供相关的代码示例。一、阿里巴巴热卖商品推荐API接口简介阿里巴巴热卖商品推荐API接口是一种基于人工智能算法的推荐系统,能够根据消费者的购买历史、浏览行为、搜索习</div> </li> <li><a href="/article/1880224796902486016.htm" title="Java爬虫——使用Spark进行数据清晰" target="_blank">Java爬虫——使用Spark进行数据清晰</a> <span class="text-muted">Future_yzx</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a> <div>1.依赖引入  org.apache.spark  spark-core_2.13  3.5.3 org.apache.spark spark-sql_2.13 3.5.32.数据加载从MySQL数据库中加载jobTest表中的数据,使用Spark的JDBC功能连接到数据库。代码片段://数据库连接信息StringjdbcUrl="jdbc:mysql://82.157.185.251:3306/</div> </li> <li><a href="/article/1835454921990828032.htm" title="Java爬虫框架(一)--架构设计" target="_blank">Java爬虫框架(一)--架构设计</a> <span class="text-muted">狼图腾-狼之传说</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%BB%E5%8A%A1/1.htm">任务</a><a class="tag" taget="_blank" href="/search/html%E8%A7%A3%E6%9E%90%E5%99%A8/1.htm">html解析器</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E5%82%A8/1.htm">存储</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E5%AD%90%E5%95%86%E5%8A%A1/1.htm">电子商务</a> <div>一、架构图那里搜网络爬虫框架主要针对电子商务网站进行数据爬取,分析,存储,索引。爬虫:爬虫负责爬取,解析,处理电子商务网站的网页的内容数据库:存储商品信息索引:商品的全文搜索索引Task队列:需要爬取的网页列表Visited表:已经爬取过的网页列表爬虫监控平台:web平台可以启动,停止爬虫,管理爬虫,task队列,visited表。二、爬虫1.流程1)Scheduler启动爬虫器,TaskMast</div> </li> <li><a href="/article/1835438028009598976.htm" title="WebMagic:强大的Java爬虫框架解析与实战" target="_blank">WebMagic:强大的Java爬虫框架解析与实战</a> <span class="text-muted">Aaron_945</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录引言官网链接WebMagic原理概述基础使用1.添加依赖2.编写PageProcessor高级使用1.自定义Pipeline2.分布式抓取优点结论引言在大数据时代,网络爬虫作为数据收集的重要工具,扮演着不可或缺的角色。Java作为一门广泛使用的编程语言,在爬虫开发领域也有其独特的优势。WebMagic是一个开源的Java爬虫框架,它提供了简单灵活的API,支持多线程、分布式抓取,以及丰富的</div> </li> <li><a href="/article/1830890417571328000.htm" title="如何在Java爬虫中设置代理IP:详解与技巧" target="_blank">如何在Java爬虫中设置代理IP:详解与技巧</a> <span class="text-muted">天启代理ip</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a> <div>在进行网络爬虫时,使用代理IP可以有效地避免被目标网站封禁,提升数据抓取的成功率。本文将详细介绍如何在Java爬虫中设置代理IP,并提供一些实用的技巧和示例代码。为什么需要代理IP?在进行爬虫操作时,频繁的请求可能会引起目标网站的注意,甚至导致IP被封禁。就像一只贪心的小猫不停地偷鱼吃,迟早会被发现。为了避免这种情况,我们可以使用代理IP,模拟多个用户,从而降低被封禁的风险。获取代理IP获取代理I</div> </li> <li><a href="/article/1830798399587315712.htm" title="2024年Java爬虫利器:Jsoup详细介绍与用法_java jsoup(1)" target="_blank">2024年Java爬虫利器:Jsoup详细介绍与用法_java jsoup(1)</a> <span class="text-muted">2401_84562143</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>.method(Connection.Method.GET).execute();DocumentloginDoc=loginForm.parse();Elementform=loginDoc.select(“form”).first();//填充表单字段form.select(“input[name=username]”).val(“username”);form.select(“input[n</div> </li> <li><a href="/article/1830797515704856576.htm" title="Java爬虫开发:Jsoup库在图片URL提取中的实战应用" target="_blank">Java爬虫开发:Jsoup库在图片URL提取中的实战应用</a> <span class="text-muted">小白学大数据</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>在当今的互联网时代,数据的获取和处理变得尤为重要。对于网站内容的自动化抓取,爬虫技术扮演着不可或缺的角色。Java作为一种广泛使用的编程语言,拥有丰富的库支持网络爬虫的开发。其中,Jsoup库以其简洁、高效的特点,成为处理HTML内容和提取数据的优选工具。本文将详细介绍如何使用Jsoup库开发Java爬虫,以实现图片URL的提取。Jsoup库简介Jsoup是一个用于解析HTML文档的Java库,它</div> </li> <li><a href="/article/1757301153126694912.htm" title="Java编写爬虫和Python编写爬虫到底有什么区别" target="_blank">Java编写爬虫和Python编写爬虫到底有什么区别</a> <span class="text-muted">菜到极致就是渣</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%9F%A5%E8%AF%86/1.htm">网络知识</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>关于Java编写爬虫和Python编写爬虫,以前我就特别疑惑,但是却并没有放在心上,不知道最近我为什么会突然感兴趣。于是我就搜了一下爬虫相关知识以及学习课程,结果我发现全都是用Python来进行网络爬虫,基本上看不到Java爬虫,以前没学爬虫的时候,我还以为只能用Python进行爬虫,难道我还要再去学Python?后面我才发现Java也可以进行爬虫,但是竟然Java也可以爬虫的话,为什么很多教学网</div> </li> <li><a href="/article/1755986156903743488.htm" title="【开源项目阅读】Java爬虫抓取豆瓣图书信息" target="_blank">【开源项目阅读】Java爬虫抓取豆瓣图书信息</a> <span class="text-muted">IncludeFun</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>原项目链接Java爬虫抓取豆瓣图书信息本地运行运行过程另建项目,把四个源代码文件拷贝到自己的包下面在代码爆红处按ALT+ENTER自动导入maven依赖直接运行Main.main方法,启动项目运行结果在本地磁盘上生成三个xml文件其中的内容即位爬取后到的图书信息,包括:书名作者名出版社名isbn号图书对应的豆瓣链接图书封面图片地址可惜并没有直接爬取到图书的内容,不过可以凭借爬取得到的图书元数据去其</div> </li> <li><a href="/article/1754878322258493440.htm" title="JAVA爬虫三种方法" target="_blank">JAVA爬虫三种方法</a> <span class="text-muted">weixin_40298650</span> <div>文章目录前言一、JDK二、HttpClient三、Jsoup总结前言记录JAVA爬虫三种方式一、JDK使用JDK自带的URLConnection实现网络爬虫。publicvoidtestGet()throwsException{//1.确定要访问/爬取的URLURLurl=newURL("https://blog.csdn.net/weixin_40298650/article/details/1</div> </li> <li><a href="/article/14.htm" title="Spring4.1新特性——综述" target="_blank">Spring4.1新特性——综述</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a> <div>目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异常处理 Spring4.1新特性——数据库集成测试脚本初始化 Spring4.1新特性——Spring MVC增强 Spring4.1新特性——页面自动化测试框架Spring MVC T</div> </li> <li><a href="/article/141.htm" title="Schema与数据类型优化" target="_blank">Schema与数据类型优化</a> <span class="text-muted">annan211</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div> 目前商城的数据库设计真是一塌糊涂,表堆叠让人不忍直视,无脑的架构师,说了也不听。 在数据库设计之初,就应该仔细揣摩可能会有哪些查询,有没有更复杂的查询,而不是仅仅突出 很表面的业务需求,这样做会让你的数据库性能成倍提高,当然,丑陋的架构师是不会这样去考虑问题的。 选择优化的数据类型 1 更小的通常更好 更小的数据类型通常更快,因为他们占用更少的磁盘、内存和cpu缓存,</div> </li> <li><a href="/article/268.htm" title="第一节 HTML概要学习" target="_blank">第一节 HTML概要学习</a> <span class="text-muted">chenke</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>第一节 HTML概要学习 1. 什么是HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接等。浏览器(IE,FireFox等)软件知道HTML语言的语法,可以用来查看HTML文档。目前互联网上的绝大部分网页都是使用HTML编写的。 打开记事本 输入一下内</div> </li> <li><a href="/article/395.htm" title="MyEclipse里部分习惯的更改" target="_blank">MyEclipse里部分习惯的更改</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>继续补充中---------------------- 1.更改自己合适快捷键windows-->prefences-->java-->editor-->Content Assist-->      Activation triggers for java的右侧“.”就可以改变常用的快捷键 选中 Text </div> </li> <li><a href="/article/522.htm" title="近一个月的面试总结" target="_blank">近一个月的面试总结</a> <span class="text-muted">cugfy</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/46753275 前言       打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。 </div> </li> <li><a href="/article/649.htm" title="HTML5一个小迷宫游戏" target="_blank">HTML5一个小迷宫游戏</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>     通过《HTML5游戏开发》摘抄了一个小迷宫游戏,感觉还不错,可以画画,写字,把摘抄的代码放上来分享下,喜欢的同学可以拿来玩玩! <html> <head> <title>创建运行迷宫</title> <script type="text/javascript"</div> </li> <li><a href="/article/776.htm" title="10步教你上传githib数据" target="_blank">10步教你上传githib数据</a> <span class="text-muted">张亚雄</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>官方的教学还有其他博客里教的都是给懂的人说得,对已我们这样对我大菜鸟只能这么来锻炼,下面先不玩什么深奥的,先暂时用着10步干净利索。等玩顺溜了再用其他的方法。 操作过程(查看本目录下有哪些文件NO.1)ls (跳转到子目录NO.2)cd+空格+目录 (继续NO.3)ls (匹配到子目录NO.4)cd+ 目录首写字母+tab键+(首写字母“直到你所用文件根就不再按TAB键了”) (查看文件</div> </li> <li><a href="/article/903.htm" title="MongoDB常用操作命令大全" target="_blank">MongoDB常用操作命令大全</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E5%91%BD%E4%BB%A4/1.htm">操作命令</a> <div>成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令,只是MongoDB没有创建数据库的命令,但有类似的命令 如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。 一</div> </li> <li><a href="/article/1030.htm" title="bat调用jar包并传入多个参数" target="_blank">bat调用jar包并传入多个参数</a> <span class="text-muted">aijuans</span> <div>下面的主程序是通过eclipse写的: 1.在Main函数接收bat文件传递的参数(String[] args)  如:   String ip =args[0];          String user=args[1];       &nbs</div> </li> <li><a href="/article/1157.htm" title="Java中对类的主动引用和被动引用" target="_blank">Java中对类的主动引用和被动引用</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%BB%E5%8A%A8%E5%BC%95%E7%94%A8/1.htm">主动引用</a><a class="tag" taget="_blank" href="/search/%E5%AF%B9%E7%B1%BB%E7%9A%84%E5%BC%95%E7%94%A8/1.htm">对类的引用</a><a class="tag" taget="_blank" href="/search/%E8%A2%AB%E5%8A%A8%E5%BC%95%E7%94%A8/1.htm">被动引用</a><a class="tag" taget="_blank" href="/search/%E7%B1%BB%E5%88%9D%E5%A7%8B%E5%8C%96/1.htm">类初始化</a> <div>  在Java代码中,有些类看上去初始化了,但其实没有。例如定义一定长度某一类型的数组,看上去数组中所有的元素已经被初始化,实际上一个都没有。对于类的初始化,虚拟机规范严格规定了只有对该类进行主动引用时,才会触发。而除此之外的所有引用方式称之为对类的被动引用,不会触发类的初始化。虚拟机规范严格地规定了有且仅有四种情况是对类的主动引用,即必须立即对类进行初始化。四种情况如下:1.遇到ne</div> </li> <li><a href="/article/1284.htm" title="导出数据库 提示 outfile disabled" target="_blank">导出数据库 提示 outfile disabled</a> <span class="text-muted">BigBird2012</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>在windows控制台下,登陆mysql,备份数据库:   mysql>mysqldump -u root -p test test > D:\test.sql 使用命令 mysqldump 格式如下: mysqldump -u root -p *** DBNAME > E:\\test.sql。 注意:执行该命令的时候不要进入mysql的控制台再使用,这样会报</div> </li> <li><a href="/article/1411.htm" title="Javascript 中的 && 和 ||" target="_blank">Javascript 中的 && 和 ||</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%26%26/1.htm">&&</a><a class="tag" taget="_blank" href="/search/%7C%7C/1.htm">||</a> <div>        准备两个对象用于下面的讨论 var alice = { name: "alice", toString: function () { return this.name; } } var smith = { name: "smith", </div> </li> <li><a href="/article/1538.htm" title="[Zookeeper学习笔记之四]Zookeeper Client Library会话重建" target="_blank">[Zookeeper学习笔记之四]Zookeeper Client Library会话重建</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a> <div>为了说明问题,先来看个简单的示例代码:   package com.tom.zookeeper.book; import com.tom.Host; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.Wat</div> </li> <li><a href="/article/1665.htm" title="【Scala十一】Scala核心五:case模式匹配" target="_blank">【Scala十一】Scala核心五:case模式匹配</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>package spark.examples.scala.grammars.caseclasses object CaseClass_Test00 { def simpleMatch(arg: Any) = arg match { case v: Int => "This is an Int" case v: (Int, String)</div> </li> <li><a href="/article/1792.htm" title="运维的一些面试题" target="_blank">运维的一些面试题</a> <span class="text-muted">yuxianhua</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>1、Linux挂载Winodws共享文件夹   mount -t cifs //1.1.1.254/ok /var/tmp/share/ -o username=administrator,password=yourpass 或 mount -t cifs -o username=xxx,password=xxxx //1.1.1.1/a /win    </div> </li> <li><a href="/article/1919.htm" title="Java lang包-Boolean" target="_blank">Java lang包-Boolean</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/boolean/1.htm">boolean</a> <div>         Boolean类是Java中基本类型boolean的包装类。这个类比较简单,直接看源代码吧。 public final class Boolean implements java.io.Serializable, </div> </li> <li><a href="/article/2046.htm" title="读《研磨设计模式》-代码笔记-命令模式-Command" target="_blank">读《研磨设计模式》-代码笔记-命令模式-Command</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * GOF 在《设计模式》一书中阐述命令模式的意图:“将一个请求封装</div> </li> <li><a href="/article/2173.htm" title="matlab下GPU编程笔记" target="_blank">matlab下GPU编程笔记</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a> <div>不多说,直接上代码 gpuDevice % 查看系统中的gpu,,其中的DeviceSupported会给出matlab支持的GPU个数。 g=gpuDevice(1); %会清空 GPU 1中的所有数据,,将GPU1 设为当前GPU reset(g) %也可以清空GPU中数据。 a=1; a=gpuArray(a); %将a从CPU移到GPU中 onGP</div> </li> <li><a href="/article/2300.htm" title="SVN安装过程" target="_blank">SVN安装过程</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a> <div>SVN安装过程   subversion-1.6.12   ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-openssl=/</div> </li> <li><a href="/article/2427.htm" title="sql 行列转换" target="_blank">sql 行列转换</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E5%88%97%E8%BD%AC%E6%8D%A2/1.htm">行列转换</a><a class="tag" taget="_blank" href="/search/%E8%A1%8C%E8%BD%AC%E5%88%97/1.htm">行转列</a><a class="tag" taget="_blank" href="/search/%E5%88%97%E8%BD%AC%E8%A1%8C/1.htm">列转行</a> <div>行转列的思想是通过case when 来实现 列转行的思想是通过union all 来实现 下面具体例子: 假设有张学生成绩表(tb)如下: Name Subject Result 张三 语文  74 张三 数学  83 张三 物理  93 李四 语文  74 李四 数学  84 李四 物理  94 */ /* 想变成 姓名   &</div> </li> <li><a href="/article/2554.htm" title="MySQL--主从配置" target="_blank">MySQL--主从配置</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div> linux下的mysql主从配置: 说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slave版本。(版本向下兼容) mysql1  : 192.168.100.1    //master mysq</div> </li> <li><a href="/article/2681.htm" title="关于yii 数据库添加新字段之后model类的修改" target="_blank">关于yii 数据库添加新字段之后model类的修改</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Model/1.htm">Model</a> <div>rules: array('新字段','safe','on'=>'search') 1、array('新字段', 'safe')//这个如果是要用户输入的话,要加一下, 2、array('新字段', 'numerical'),//如果是数字的话 3、array('新字段', 'length', 'max'=>100),//如果是文本 1、2、3适当的最少要加一条,新字段才会被</div> </li> <li><a href="/article/2808.htm" title="sublime text3 中文乱码解决" target="_blank">sublime text3 中文乱码解决</a> <span class="text-muted">dyy_gusi</span> <a class="tag" taget="_blank" href="/search/Sublime+Text/1.htm">Sublime Text</a> <div>sublime text3中文乱码解决 原因:缺少转换为UTF-8的插件 目的:安装ConvertToUTF8插件包 第一步:安装能自动安装插件的插件,百度“Codecs33”,然后按照步骤可以得到以下一段代码: import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a30980927</div> </li> <li><a href="/article/2935.htm" title="概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM" target="_blank">概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM</a> <span class="text-muted">geeksun</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。 FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不</div> </li> <li><a href="/article/3062.htm" title="Git push 报错 "error: failed to push some refs to " 解决" target="_blank">Git push 报错 "error: failed to push some refs to " 解决</a> <span class="text-muted">hongtoushizi</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a> <div>Git push 报错 "error: failed to push some refs to " . 此问题出现的原因是:由于远程仓库中代码版本与本地不一致冲突导致的。 由于我在第一次git pull --rebase 代码后,准备push的时候,有别人往线上又提交了代码。所以出现此问题。 解决方案: 1: git pull    2:</div> </li> <li><a href="/article/3189.htm" title="第四章 Lua模块开发" target="_blank">第四章 Lua模块开发</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a> <div>在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by_lua中初</div> </li> <li><a href="/article/3316.htm" title="java.lang.reflect.Proxy" target="_blank">java.lang.reflect.Proxy</a> <span class="text-muted">liyonghui160com</span> <div>  1.简介   Proxy 提供用于创建动态代理类和实例的静态方法 (1)动态代理类的属性 代理类是公共的、最终的,而不是抽象的 未指定代理类的非限定名称。但是,以字符串 "$Proxy" 开头的类名空间应该为代理类保留 代理类扩展 java.lang.reflect.Proxy 代理类会按同一顺序准确地实现其创建时指定的接口</div> </li> <li><a href="/article/3443.htm" title="Java中getResourceAsStream的用法" target="_blank">Java中getResourceAsStream的用法</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>1.Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。   2. Class.getClassLoader.get</div> </li> <li><a href="/article/3570.htm" title="spring 包官方下载地址(非maven)" target="_blank">spring 包官方下载地址(非maven)</a> <span class="text-muted">sinnk</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径:   http://repo.springsource.org/libs-release-local/org/springframework/spring/   s</div> </li> <li><a href="/article/3697.htm" title="Oracle学习笔记(7) 开发PLSQL子程序和包" target="_blank">Oracle学习笔记(7) 开发PLSQL子程序和包</a> <span class="text-muted">vipbooks</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>    哈哈,清明节放假回去了一下,真是太好了,回家的感觉真好啊!现在又开始出差之旅了,又好久没有来了,今天继续Oracle的学习!      这是第七章的学习笔记,学习完第六章的动态SQL之后,开始要学习子程序和包的使用了……,希望大家能多给俺一些支持啊!     编程时使用的工具是PLSQL</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>