- एक एक्सएचटीएमएल दस्तावेज़ में वेब पेज आप स्क्रैप करने के लिए कोशिश कर रहे हैं रूपांतरण। ऐसे JTidy और HTMLCleaner के रूप में जावा के साथ ऐसा करने के लिए कई विकल्प हैं। ये टूल स्वचालित रूप से विकृत HTML को भी ठीक कर देंगे (उदा।, बंद किए गए टैग बंद करें)। दोनों बहुत अच्छी तरह से काम करते हैं, लेकिन मैं जेटीडी पसंद करता हूं क्योंकि यह जावा के डोम एपीआई के साथ बेहतर एकीकृत करता है;
- निकालें आवश्यक XPath अभिव्यक्ति का उपयोग करते जानकारी।
यहाँ एक काम कर उदाहरण JTidy और वेब पेज आपके द्वारा दी गई तालिका से सभी फ़ाइल नाम निकालने के लिए इस्तेमाल का उपयोग कर रहा है।
public static void main(String[] args) throws Exception {
// Create a new JTidy instance and set options
Tidy tidy = new Tidy();
tidy.setXHTML(true);
// Parse an HTML page into a DOM document
URL url = new URL("http://www.cs.grinnell.edu/~walker/fluency-book/labs/sample-table.html");
Document doc = tidy.parseDOM(url.openStream(), System.out);
// Use XPath to obtain whatever you want from the (X)HTML
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//td[@valign = 'top']/a/text()");
NodeList nodes = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
List<String> filenames = new ArrayList<String>();
for (int i = 0; i < nodes.getLength(); i++) {
filenames.add(nodes.item(i).getNodeValue());
}
System.out.println(filenames);
}
परिणाम [Integer Processing:, Image Processing:, A Photo Album:, Run-time Experiments:, More Run-time Experiments:]
हो जाएगा उम्मीद है।
एक और शांत उपकरण है कि आप उपयोग कर सकते हैं Web Harvest
है। यह मूल रूप से मैंने जो कुछ भी किया है, वह निष्कर्ष पाइपलाइन को कॉन्फ़िगर करने के लिए एक XML फ़ाइल का उपयोग करता है।
स्रोत
2011-01-02 02:39:52
मैंने jSoup दस्तावेज़ों पर एक नज़र डाली और यह बहुत अच्छा दिखता है। मैं पाइथन के लिए सुंदर सूप की तर्ज पर कुछ ढूंढ रहा था और यहां यह है! –