2010-08-25 13 views
7

मैं जावा के लिए नया हूं और कुछ समस्याएं हैं।जावा - वेबसाइट के भीतर डेटा के लिए खोज

मुख्य विचार किसी वेबसाइट से कनेक्ट करना और इससे जानकारी एकत्र करना और उसे सरणी में संग्रहीत करना है।

मैं क्या चाहता हूं कार्यक्रम वेबसाइट खोज एक कुंजी शब्द मिल जाए, और स्टोर क्या कुंजी शब्द के बाद आता है करने के लिए है ..

वेबसाइट के नीचे के साथ CNET सॉफ्टवेयर के पहले पन्ने पर

है एक अनुभाग "टैग बादल" कहा जाता है जो टैग से भर जाता है/कम शब्दों

टैग बादल:

मेरा विचार पहली और वेबसाइट के HTML में पढ़ा तो खोज करने के लिए है "मैं स्टोर करने के लिए यहाँ क्या लिखा है चाहता हूँ" स्कैनर और स्ट्रिंगटोकनाइज़र का उपयोग कर पाठ के बाद कुंजी शब्द के लिए वह फ़ाइल फिर सरणी के रूप में संग्रहित करें।

क्या कोई बेहतर तरीका/आसान है?

जहां तुम क्या सुझाव है कि मैं कुछ उदाहरण

यहाँ

मैं अब तक किया है के लिए देखो।

import java.net.*; 
import java.io.*; 

public class URLReader { 

    public static void main(String[] args) throws Exception { 

     URL dweb = new URL("http://www.daniweb.com/"); 
     URLConnection dw = dweb.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(hc.getInputStream())); 
     System.out.println("connected to daniweb"); 
     String inputLine; 

     PrintStream out = new PrintStream(new FileOutputStream("OutFile.txt")); 

     try { 
     while ((inputLine = in.readLine()) != null) 
      out.println(inputLine); 

      //System.out.println(inputLine); 
      //in.close(); 
     out.close(); 
     System.out.println("printed text to outfile"); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

     try { 
      Scanner scan = new Scanner(OutFile.txt); 
      String search = txtSearch.getText(); 
      while (scan.hasNextLine()) { 
       line = scan.nextLine(); 
      //still working 
       while (st.hasMoreTokens()) { 
        word = st.nextToken(); 
        if (word == search) { 

        } else { 

        } 
       } 
      } 
      scan.close(); 
      SearchWin.dispose(); 
     } catch (IOException iox) { 
     } 
    } 

किसी भी मदद की बहुत सराहना की जाएगी!

उत्तर

6

मैं jsoup की सलाह देता हूं। यह आपके लिए पृष्ठ को पुनर्प्राप्त और पार्स करेगा।

डैनवेब पर, प्रत्येक टैग क्लाउड लिंक में सीएसएस क्लास tagcloudlink है। इसलिए आपको टैग्स में सभी टेक्स्ट निकालने के लिए jsoup को बताने की आवश्यकता है जिसमें कक्षा tagcloudlink है।

यह मेरे सिर के शीर्ष से बाहर है और jsoup साइट से कुछ मदद है; मैंने इसका परीक्षण नहीं किया है, लेकिन आपको इसे शुरू करना चाहिए:

List<String> tags = new ArrayList<String>(); 
Document doc = Jsoup.connect("http://daniweb.com/").get(); 
Elements taglinks = doc.select("a.tagcloudlink"); 
for (Element link : taglinks) { 
    tags.add(link.text()); 
} 
+1

अच्छा जवाब जेफ। –

1

आप इसके लिए HTML पार्सर का उपयोग कर सकते हैं। यहां एक लिंक है: HTML Parser। एक और मैंने बहुत उपयोग किया है और जैसे जेरिको एचटीएमएल पार्सर है। यहां एक लिंक है: Jericho HTML Parser

संबंधित मुद्दे