दिलचस्प पोस्ट
Tkinter चर ट्रेस विधि कॉलबैक करने के लिए तर्क क्या हैं? मैं HTML स्रोत को सी # में कैसे डाउनलोड कर सकता हूं एक ही समय में दो सरणी तत्वों के अस्थिर संदर्भ कैसे प्राप्त करें? AngularJS एक पृष्ठ के भीतर एकाधिक एनजी-ऐप उद्देश्य-सी में लंबे समय से मतदान कैसे 'git क्लोन' submodules सहित? सी / सी ++ में सामान्य वितरण के बाद यादृच्छिक संख्या उत्पन्न करें यूएसी के माध्यम से प्रोसेसब्ल्युल्डर की प्रक्रिया को ऊपर उठाना? System.out.println () के लिए JUnit परीक्षण रंग संसाधन से रंग- int प्राप्त करें मैं मौजूदा निर्देशिका में पायथन के माध्यम से फ़ाइलों की संपूर्ण निर्देशिका की प्रतिलिपि कैसे बनाऊं? ऊँचाई प्रतिशत सीएसएस में काम नहीं कर रहा है WebSockets और अपाचे प्रॉक्सी: mod_proxy_wstunnel को कॉन्फ़िगर कैसे करें? एक TextView में टेक्स्ट कॉपी करें का चयन करें? दृश्य स्टूडियो में निर्माण समय प्रदर्शित करना?

आप प्रोग्राम में जावा में एक वेब पेज कैसे डाउनलोड करते हैं?

मैं एक वेब पेज के एचटीएमएल लाने और String इसे सहेजने में सक्षम होना चाहता हूं, इसलिए मैं उस पर कुछ प्रोसेसिंग कर सकता हूं। इसके अलावा, मैं कैसे विभिन्न प्रकार के संपीड़न को संभाल सकता है

मैं जावा का उपयोग करने के बारे में कैसे करूँगा?

Solutions Collecting From Web of "आप प्रोग्राम में जावा में एक वेब पेज कैसे डाउनलोड करते हैं?"

जावा के यूआरएल वर्ग का उपयोग करके कुछ परीक्षण कोड यहां दिए गए हैं। मैं अपवादों को संभालने या कॉल स्टैक को पास करने के बजाय यहां से बेहतर काम करने की सलाह देता हूं, हालांकि।

 public static void main(String[] args) { URL url; InputStream is = null; BufferedReader br; String line; try { url = new URL("http://stackoverflow.com/"); is = url.openStream(); // throws an IOException br = new BufferedReader(new InputStreamReader(is)); while ((line = br.readLine()) != null) { System.out.println(line); } } catch (MalformedURLException mue) { mue.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { try { if (is != null) is.close(); } catch (IOException ioe) { // nothing to see here } } } 

मैं एक अच्छा HTML पार्सर का उपयोग करना चाहूँगा जैसे जेस्उप यह तब के रूप में आसान है:

 String html = Jsoup.connect("http://stackoverflow.com").get().html(); 

यह जीजेआईपी और चांकित प्रतिक्रियाओं और चरित्र एन्कोडिंग को पूरी तरह से पारदर्शी रूप से संभालता है। यह अधिक लाभ प्रदान करता है, जैसे कि सीएसएस चयनकर्ताओं द्वारा एचटीएमएल ट्रॉसिंग और हेरफेर जैसे कि jQuery के काम कर सकते हैं। आपको इसे केवल Document रूप में Document , String रूप में नहीं।

 Document document = Jsoup.connect("http://google.com").get(); 

आप वास्तव में बुनियादी स्ट्रिंग विधियों को चलाने के लिए नहीं चाहते हैं या यहां पर प्रोसेस करने के लिए एचटीएमएल पर भी पुनर्जन्म नहीं करना चाहते हैं।

यह भी देखें:

  • जावा में अग्रणी एचटीएमएल पार्सर के पेशेवर और विपक्ष क्या हैं?

विधेयक का उत्तर बहुत अच्छा है, लेकिन आप कुछ चीजों को संपीड़न या उपयोगकर्ता-एजेंट जैसे अनुरोध करना चाहते हैं निम्न कोड से पता चलता है कि आप अपने अनुरोधों पर विभिन्न प्रकार के संपीड़न कैसे कर सकते हैं।

 URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // Cast shouldn't fail HttpURLConnection.setFollowRedirects(true); // allow both GZip and Deflate (ZLib) encodings conn.setRequestProperty("Accept-Encoding", "gzip, deflate"); String encoding = conn.getContentEncoding(); InputStream inStr = null; // create the appropriate stream wrapper based on // the encoding type if (encoding != null && encoding.equalsIgnoreCase("gzip")) { inStr = new GZIPInputStream(conn.getInputStream()); } else if (encoding != null && encoding.equalsIgnoreCase("deflate")) { inStr = new InflaterInputStream(conn.getInputStream(), new Inflater(true)); } else { inStr = conn.getInputStream(); } 

उपयोगकर्ता-एजेंट को निम्न कोड भी सेट करने के लिए:

 conn.setRequestProperty ( "User-agent", "my agent name"); 

ठीक है, आप यूआरएल और यूआरएल कनेक्शन जैसे निर्मित पुस्तकालयों के साथ जा सकते हैं, लेकिन वे बहुत अधिक नियंत्रण नहीं देते हैं।

व्यक्तिगत रूप से मैं अपाचे HTTPClient पुस्तकालय के साथ जाना था।
संपादित करें: HTTP क्लाइंट को अपाचे द्वारा जीवन के अंत में सेट किया गया है। प्रतिस्थापन है: HTTP घटक

उपर्युक्त सभी दृष्टिकोण वेब पृष्ठ टेक्स्ट को डाउनलोड नहीं करते क्योंकि यह ब्राउज़र में दिखता है। इन दिनों बहुत सारे डेटा HTML पृष्ठों में स्क्रिप्ट के माध्यम से ब्राउज़र में लोड किए जाते हैं। उपरोक्त तकनीकों में से कोई भी स्क्रिप्ट का समर्थन नहीं करता है, वे केवल HTML टेक्स्ट ही डाउनलोड करते हैं HTMLUNIT जावास्क्रिप्ट का समर्थन करता है इसलिए यदि आप ब्राउज़र में दिखने वाले वेब पेज टेक्स्ट को डाउनलोड करना चाहते हैं तो आपको HTMLUNIT का उपयोग करना चाहिए

यूनिक्स / लिनक्स बॉक्स पर आप 'wget' चला सकते हैं लेकिन यह वास्तव में एक विकल्प नहीं है यदि आप एक क्रॉस-प्लेटफॉर्म ग्राहक लिख रहे हैं बेशक यह मानता है कि आप वास्तव में यह डाउनलोड करने के बिंदु के बीच डाउनलोड किए गए डेटा के साथ बहुत कुछ करना नहीं चाहते हैं और यह डिस्क को मारने के लिए

Jsoup पुस्तकालय का उपयोग करने की कोशिश करें

 import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class ParseHTML { public static void main(String args[]) throws IOException{ Document doc = Jsoup.connect("https://www.wikipedia.org/").get(); String text = doc.body().text(); System.out.print(text); } } 

आप यहां जेएसओयूपी पुस्तकालय डाउनलोड कर सकते हैं ।

यह मेरे लिए काम किया

 package test; import java.net.*; import java.io.*; public class PDFTest { public static void main(String[] args) throws Exception { try { URL oracle = new URL("http://www.fetagracollege.org"); BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream())); String fileName = "D:\\a_01\\output.txt"; PrintWriter writer = new PrintWriter(fileName, "UTF-8"); OutputStream outputStream = new FileOutputStream(fileName); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); writer.println(inputLine); } in.close(); } catch(Exception e) { } } } 

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

 package com.zetcode; import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.api.ContentResponse; public class ReadWebPageEx5 { public static void main(String[] args) throws Exception { HttpClient client = null; try { client = new HttpClient(); client.start(); String url = "http://www.something.com"; ContentResponse res = client.GET(url); System.out.println(res.getContentAsString()); } finally { if (client != null) { client.stop(); } } } } 

उदाहरण एक साधारण वेब पेज की सामग्री प्रिंट करता है

जावा ट्यूटोरियल में एक वेब पेज पढ़ने के दौरान मैंने यूआरएल, जेसूप, एचटीएमएल क्लेनर, अपाचे एचटीटीपीएलएन्ट, जेटी एचटीटीपी क्लायंट, और एचटीएमएलयूनिट का उपयोग करते हुए जावा में एक वेब पेज प्रोग्रामेटिकल डाऊलोड करने के छह उदाहरण लिखे हैं।