<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
    今天晚上,幫我一個同門師兄,解決一下問題.
    題目是,抓取一個網站的所以頁面,并抓下這些頁碼的所有網址.
    代碼如下:
    package com.hwp.test;

    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class SearchEngine
    {
        
    private Map<String, List<String>> pageNameUrls;
        
        
    public SearchEngine()
        
    {
            pageNameUrls 
    = new HashMap<String, List<String>>();
        }

        
        
    private String getContent(String httpUrl)
        
    {
            String htmlCode 
    = "";
            
    try
            
    {
                InputStream in;
                URL url 
    = new java.net.URL(httpUrl);
                HttpURLConnection connection 
    = (HttpURLConnection) url
                        .openConnection();
                connection 
    = (HttpURLConnection) url.openConnection();
                connection.setRequestProperty(
    "User-Agent""Mozilla/4.0");
                connection.connect();
                in 
    = connection.getInputStream();
                
    byte[] buffer = new byte[512];
                
    int length = -1;
                
    while ((length = in.read(buffer, 0512)) != -1)
                
    {
                    htmlCode 
    += new String(buffer, 0, length);
                }

            }

            
    catch (Exception e)
            
    {}
            
    if (htmlCode == null)
            
    {
                
    return "";
            }

            
    return htmlCode;
        }

        
        
    private List<String> getPageUrls(String page)
        
    {
            List
    <String> urls = new ArrayList<String>();
            String content 
    = this.getContent(page);
             
            String reg 
    = "http://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
            Pattern pattern 
    = Pattern.compile(reg);
            Matcher matcher 
    = pattern.matcher(content);
            
            String url 
    = "";
            
    while (matcher.find())
            
    {
                url 
    = matcher.group();
                
    if (!urls.contains(url))
                
    {
                    urls.add(url);
                }

            }

            
    return urls;
        }

        
        
    public void test(String url, String baseUrl)
        
    {
            String content 
    = this.getContent(url);
            
    // System.out.println(content);
            String reg = "(" + baseUrl
                    
    + "(/[\\w-]+)*(/[\\w-]+\\.(htm|html|xhtml|jsp|asp|php)))";
            Pattern pattern 
    = Pattern.compile(reg);
            Matcher matcher 
    = pattern.matcher(content);
            
    while (matcher.find())
            
    {
                String tempUrl 
    = matcher.group();
                
    if (!this.pageNameUrls.containsKey(tempUrl))
                
    {
                    
    //System.out.println(tempUrl);
                    this.pageNameUrls.put(tempUrl, this.getPageUrls(tempUrl));
                    test(tempUrl, baseUrl);
                }

            }

        }

        
        
    public static void main(String[] args)
        
    {
            String url 
    = "http://www.tkk7.com";
            String baseUrl 
    = "http://www.tkk7.com";
            SearchEngine se 
    = new SearchEngine();
            se.test(url, baseUrl);
            Map
    <String, List<String>> map= se.pageNameUrls;
            Set
    <Map.Entry<String, List<String>>> set = map.entrySet();
            
    for(Map.Entry<String, List<String>> entry: set)
            
    {
                System.out.println(entry.getKey());
                System.out.println(entry.getValue());
            }

        }

    }

    posted on 2008-07-14 23:24 HUIKK 閱讀(404) 評論(0)  編輯  收藏 所屬分類: Regular Exp

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 日韩一区二区三区免费体验| 亚洲欧洲无码AV电影在线观看| 污污污视频在线免费观看| 中文字幕亚洲日韩无线码| 亚洲视频免费在线播放| 羞羞漫画登录页面免费| 亚洲国产精品婷婷久久| 全免费a级毛片免费看无码| 国产在线精品观看免费观看| 亚洲一区在线视频| 最新精品亚洲成a人在线观看| 免费A级毛片无码A∨| 老司机免费午夜精品视频| 久久综合亚洲色一区二区三区| 免费国产成人午夜私人影视| 2021精品国产品免费观看| 一区二区在线视频免费观看| 亚洲国产精品网站久久| 国产亚洲精品自在久久| 在线精品免费视频| 青青草无码免费一二三区| 一级毛片不卡免费看老司机| 99热亚洲色精品国产88| 亚洲妇熟XXXX妇色黄| 免费永久国产在线视频| 91免费精品国自产拍在线不卡| 久久精品成人免费国产片小草 | 在线观看亚洲电影| 亚洲精品福利在线观看| 国产亚洲婷婷香蕉久久精品 | 女人张开腿给人桶免费视频| 亚洲一区二区在线免费观看| 特a级免费高清黄色片| 亚洲粉嫩美白在线| 91亚洲一区二区在线观看不卡| 久久精品国产亚洲7777| 日批日出水久久亚洲精品tv| 久久综合AV免费观看| 久久久免费的精品| 久久99毛片免费观看不卡| 国产精品综合专区中文字幕免费播放 |