摘要:這種方法打成的包如何運(yùn)行兩種方法將依賴通過(guò)全部指定,然后運(yùn)行,類全名類命名,此方法貌似不再支持頁(yè)面下載器前期準(zhǔn)備導(dǎo)入依賴下載器第一版此處可以自己寫(xiě)個(gè)的解析方法第二版匿名內(nèi)部類版本匿名內(nèi)部類可以使用表達(dá)式來(lái)替代,寫(xiě)法為第三版使用包中的
說(shuō)點(diǎn)別的 maven打包 官方定制的打包方式
使用maven assembly plugin插件完成打包操作,插件配置在pom.xml文件的build標(biāo)簽中,格式如下。
[...] maven-assembly-plugin 3.1.0 jar-with-dependencies
executions用于將目標(biāo)和maven的某個(gè)生命周期進(jìn)行綁定
創(chuàng)建可執(zhí)行的jar包make-assembly package single
自定義打包方式[...] [...] maven-assembly-plugin 3.1.0 [...] [...]org.sample.App
上文已提到使用官方定制的打包方式,使用
[...] [...] maven-assembly-plugin 3.1.0 [...] src/assembly/src.xml
src.xml的格式大致如下
snapshot jar /lib
使用
兩種方法:
將依賴通過(guò)cp全部指定,然后運(yùn)行,java -cp lib/dependency1:lib/dependency2 類全名
java -Djava.ext.dirs=lib 類命名,此方法貌似java 9不再支持
頁(yè)面下載器 前期準(zhǔn)備maven導(dǎo)入依賴
下載器第一版org.apache.httpcomponents httpclient 4.5.3 org.apache.httpcomponents fluent-hc 4.5.3
import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.RequestBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.nio.charset.Charset; public void testGet1() { CloseableHttpClient clients = HttpClients.createDefault(); RequestBuilder builder = requestBuilder.get("http://www.qq.com"); HttpGet httpGet = new HttpGet(builder.build().getURI()); CloseableHttpResponse execute = null; try { execute = clients.execute(httpGet); HttpEntity entity = execute.getEntity(); //此處可以自己寫(xiě)個(gè)charset的解析方法 String page = EntityUtils.toString(entity); System.out.println(page); } catch (Exception e) { e.printStackTrace(); } finally { if (execute != null) { try { execute.close(); } catch (IOException e) { e.printStackTrace(); } } } }第二版
匿名內(nèi)部類版本
public void testGet2() { CloseableHttpClient clients = HttpClients.createDefault(); RequestBuilder builder = RequestBuilder.get("http://www.qq.com"); HttpGet httpGet = new HttpGet(builder.build().getURI()); try { String page = clients.execute(httpGet, new ResponseHandler() { @Override public String handleResponse(HttpResponse HttpResponse) throws ClientProtocolException, IOException HttpEntity entity = httpResponse.getEntity(); String s = EntityUtils.toString(entity); return s; }); System.out.println(page); } catch (Exception e) { e.printStackTrace(); } }
匿名內(nèi)部類可以使用lambda表達(dá)式來(lái)替代,寫(xiě)法為
String page = clients.execute(httpGet, (HttpResponse HttpResponse) -> { HttpEntity entity = HttpResponse.getEntity(); String s = EntityUtils.toString(entity); return s; });第三版
使用org.apache.http.client.fluent包中的api
public void testGet3() { Response response = Request.Get("http://www.qq.com").execute(); String s = response.returnContent().asString(Charset.forName("gb2312")); System.out.println(s); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/67968.html
摘要:通用網(wǎng)絡(luò)爬蟲(chóng)通用網(wǎng)絡(luò)爬蟲(chóng)又稱全網(wǎng)爬蟲(chóng),爬取對(duì)象從一些種子擴(kuò)充到整個(gè)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲(chóng)會(huì)采取一定的爬取策略。介紹是一個(gè)國(guó)人編寫(xiě)的強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)并帶有強(qiáng)大的。 爬蟲(chóng) 簡(jiǎn)單的說(shuō)網(wǎng)絡(luò)爬蟲(chóng)(Web crawler)也叫做網(wǎng)絡(luò)鏟(Web scraper)、網(wǎng)絡(luò)蜘蛛(Web spider),其行為一般是先爬到對(duì)應(yīng)的網(wǎng)頁(yè)上,再把需要的信息鏟下來(lái)。 分類 網(wǎng)絡(luò)爬蟲(chóng)按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),...
摘要:通用網(wǎng)絡(luò)爬蟲(chóng)通用網(wǎng)絡(luò)爬蟲(chóng)又稱全網(wǎng)爬蟲(chóng),爬取對(duì)象從一些種子擴(kuò)充到整個(gè)。為提高工作效率,通用網(wǎng)絡(luò)爬蟲(chóng)會(huì)采取一定的爬取策略。介紹是一個(gè)國(guó)人編寫(xiě)的強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)并帶有強(qiáng)大的。 爬蟲(chóng) 簡(jiǎn)單的說(shuō)網(wǎng)絡(luò)爬蟲(chóng)(Web crawler)也叫做網(wǎng)絡(luò)鏟(Web scraper)、網(wǎng)絡(luò)蜘蛛(Web spider),其行為一般是先爬到對(duì)應(yīng)的網(wǎng)頁(yè)上,再把需要的信息鏟下來(lái)。 分類 網(wǎng)絡(luò)爬蟲(chóng)按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),...
摘要:理解迭代對(duì)象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫(xiě)的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個(gè)對(duì)象的內(nèi)容是后端掘金黑魔法之協(xié)程異步后端掘金本文為作者原創(chuàng),轉(zhuǎn)載請(qǐng)先與作者聯(lián)系。 完全理解關(guān)鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習(xí)慣,可能會(huì)看到一些優(yōu)秀的代碼經(jīng)常出現(xiàn)帶有 with 關(guān)鍵字的語(yǔ)句,它通常用在什么場(chǎng)景呢?今天就來(lái)說(shuō)說(shuō) with 和 上下...
摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲(chóng)方案后端掘金前言爬蟲(chóng)和反爬蟲(chóng)日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲(chóng)修煉之道——從網(wǎng)頁(yè)中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲(chóng)修煉之道 上篇 爬蟲(chóng)修煉之道——編寫(xiě)一個(gè)爬取多頁(yè)面的網(wǎng)絡(luò)爬蟲(chóng)主要講解了如何使用python編寫(xiě)一個(gè)可以下載多頁(yè)面的爬蟲(chóng),如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...
閱讀 3775·2021-09-22 15:34
閱讀 1285·2019-08-29 17:25
閱讀 3478·2019-08-29 11:18
閱讀 1466·2019-08-26 17:15
閱讀 1844·2019-08-23 17:19
閱讀 1308·2019-08-23 16:15
閱讀 790·2019-08-23 16:02
閱讀 1412·2019-08-23 15:19