国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

頁面下載器(我的Java爬蟲之一)

wfc_666 / 2885人閱讀

摘要:這種方法打成的包如何運行兩種方法將依賴通過全部指定,然后運行,類全名類命名,此方法貌似不再支持頁面下載器前期準備導入依賴下載器第一版此處可以自己寫個的解析方法第二版匿名內部類版本匿名內部類可以使用表達式來替代,寫法為第三版使用包中的

說點別的 maven打包 官方定制的打包方式

使用maven assembly plugin插件完成打包操作,插件配置在pom.xml文件的build標簽中,格式如下。


    [...]
    
      
        
        maven-assembly-plugin
        3.1.0
        
          
            jar-with-dependencies
          
        

executions用于將目標和maven的某個生命周期進行綁定


  
    make-assembly 
    package 
    
      single
    
  
創建可執行的jar包

   [...]
   
     
       maven-assembly-plugin
       3.1.0
       
         [...]
         
           
             org.sample.App
           
         
       
       [...]
     
     [...]
自定義打包方式

上文已提到使用官方定制的打包方式,使用標簽即可;如果使用自定義的打包方式,使用標簽。


  [...]
  
    [...]
    
      
        maven-assembly-plugin
        3.1.0
        
          
            src/assembly/src.xml
          
        
        [...]

src.xml的格式大致如下


    snapshot
    
        jar
    
    
        
            /lib
        
    

使用允許用戶通過文件或目錄的粒度來控制打包,往往配置一個bin目錄,里面存放可運行的腳本。這種方法打成的包如何運行?
兩種方法:

將依賴通過cp全部指定,然后運行,java -cp lib/dependency1:lib/dependency2 類全名

java -Djava.ext.dirs=lib 類命名,此方法貌似java 9不再支持

頁面下載器 前期準備

maven導入依賴


    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();
    //此處可以自己寫個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();
      }
    }
  }
}
第二版

匿名內部類版本

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();
  }
}

匿名內部類可以使用lambda表達式來替代,寫法為

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);
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67968.html

相關文章

  • 爬蟲入門

    摘要:通用網絡爬蟲通用網絡爬蟲又稱全網爬蟲,爬取對象從一些種子擴充到整個。為提高工作效率,通用網絡爬蟲會采取一定的爬取策略。介紹是一個國人編寫的強大的網絡爬蟲系統并帶有強大的。 爬蟲 簡單的說網絡爬蟲(Web crawler)也叫做網絡鏟(Web scraper)、網絡蜘蛛(Web spider),其行為一般是先爬到對應的網頁上,再把需要的信息鏟下來。 分類 網絡爬蟲按照系統結構和實現技術,...

    defcon 評論0 收藏0
  • 爬蟲入門

    摘要:通用網絡爬蟲通用網絡爬蟲又稱全網爬蟲,爬取對象從一些種子擴充到整個。為提高工作效率,通用網絡爬蟲會采取一定的爬取策略。介紹是一個國人編寫的強大的網絡爬蟲系統并帶有強大的。 爬蟲 簡單的說網絡爬蟲(Web crawler)也叫做網絡鏟(Web scraper)、網絡蜘蛛(Web spider),其行為一般是先爬到對應的網頁上,再把需要的信息鏟下來。 分類 網絡爬蟲按照系統結構和實現技術,...

    Invoker 評論0 收藏0
  • 后端技術 - 收藏集 - 掘金

    摘要:理解迭代對象迭代器生成器后端掘金本文源自作者的一篇博文,原文是,俺寫的這篇文章是按照自己的理解做的參考翻譯。比較的是兩個對象的內容是后端掘金黑魔法之協程異步后端掘金本文為作者原創,轉載請先與作者聯系。 完全理解關鍵字with與上下文管理器 - 掘金如果你有閱讀源碼的習慣,可能會看到一些優秀的代碼經常出現帶有 with 關鍵字的語句,它通常用在什么場景呢?今天就來說說 with 和 上下...

    oujie 評論0 收藏0
  • 爬蟲 - 收藏集 - 掘金

    摘要:在這之前,還是有必要對一些概念超輕量級反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標配系統。 爬蟲修煉之道——從網頁中提取結構化數據并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個爬取多頁面的網絡爬蟲主要講解了如何使用python編寫一個可以下載多頁面的爬蟲,如何將相對URL轉為絕對URL,如何限速,...

    1fe1se 評論0 收藏0

發表評論

0條評論

wfc_666

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<