Java網頁資料抓取執行個體

來源:互聯網
上載者:User

在很多行業中,要對行業資料進行分類匯總,及時分析行業資料,對於公司未來的發展,有很好的參照和橫向對比。所以,在實際工作,我們可能要遇到資料擷取這個概念,資料擷取的最終目的就是要獲得資料,提取有用的資料進行資料提取和資料分類匯總。

很多人在第一次瞭解資料擷取的時候,可能無從下手,尤其是作為一個新手,更是感覺很是茫然,所以,在這裡分享一下自己的心得,希望和大家一起分享技術,如果有什麼不足,還請大家指正。寫出這篇目的,就是希望大家一起成長,我也相信技術之間沒有高低,只有互補,只有分享,才能使彼此更加成長。

在網頁資料擷取的時候,我們往往要經過這幾個大的步驟:

①通過URL地址讀取目標網頁②獲得網頁源碼③通過網頁源碼抽取我們要提取的目的資料④對資料進行格式轉換,獲得我們需要的資料。

這是一個示意圖,希望大家瞭解

瞭解了基本流程,下來,我以一個案例具體實現如何提取我們需要的資料,對於資料提取可以用Regex進行提取,也可以用httpclient+jsoup進行提取,此處,暫且不講解httpclient+jsou提取網頁資料的做法,以後會對httpclient+jsoup進行專門的講解,此處,先開始講解如何用Regex對資料進行提取。

我在這裡找到一個網站:http://www.ic.net.cn/userSite/publicQuote/quotes_list.php 我們要對裡面的資料進行提取操作,我們要提取的最終結果是產品的型號、數量、報價、供應商,首先,我們看到這個網站整個頁面預覽


其次我們看網頁源碼結構:


上面源碼可以很清楚的可以看到整個網頁源碼結構,下來我們就對整個網頁資料進行提取

[java]  view plain  copy import java.io.BufferedReader;   import java.io.InputStream;   import java.io.InputStreamReader;   import java.net.HttpURLConnection;   import java.net.URL;   import java.util.ArrayList;   import java.util.List;   import java.util.regex.Matcher;   import java.util.regex.Pattern;      public class HTMLPageParser {       public static void main(String[] args) throws Exception {           //目的網頁URL地址           getURLInfo("http://www.ic.net.cn/userSite/publicQuote/quotes_list.php","utf-8");       }       public static List<Product> getURLInfo(String urlInfo,String charset) throws Exception {           //讀取目的網頁URL地址,擷取網頁源碼           URL url = new URL(urlInfo);           HttpURLConnection httpUrl = (HttpURLConnection)url.openConnection();           InputStream is = httpUrl.getInputStream();           BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));           StringBuilder sb = new StringBuilder();           String line;           while ((line = br.readLine()) != null) {               //這裡是對連結進行處理               line = line.replaceAll("</?a[^>]*>", "");               //這裡是對樣式進行處理               line = line.replaceAll("<(\\w+)[^>]*>", "<$1>");               sb.append(line);  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.