मैं जावा के लिए नौसिखिया हूं और मेरा पहला काम कुछ 10,000 यूआरएल पार्स करना और कुछ जानकारी निकालना है, इसके लिए मैं जसौप और इसके कामकाजी जुर्माना का उपयोग कर रहा हूं। लेकिन अब मैं इसे प्रॉक्सी समर्थन जोड़ना चाहता हूं। प्रॉक्सी के पास उपयोगकर्ता नाम और पासवर्ड भी है। क्या कोई 1 इस के साथ मेरी मदद कर सकता है। धन्यवादJsoup (HTML पार्सर) को प्रॉक्सी समर्थन कैसे जोड़ें?
उत्तर
आपको Jsoup के माध्यम से वेबपृष्ठ डेटा प्राप्त करने की आवश्यकता नहीं है। यहां मेरा समाधान है, हालांकि यह सबसे अच्छा नहीं हो सकता है।
URL url = new URL("http://www.example.com/");
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8080)); // or whatever your proxy is
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy);
uc.connect();
String line = null;
StringBuffer tmp = new StringBuffer();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
while ((line = in.readLine()) != null) {
tmp.append(line);
}
Document doc = Jsoup.parse(String.valueOf(tmp));
और वहां यह है। यह प्रॉक्सी के माध्यम से एचटीएमएल पेज का स्रोत प्राप्त करता है और फिर इसे Jsoup के साथ पार्स करता है।
अच्छा समाधान। क्या कोई तरीका है कि मैं एनआईओ आधारित फेक्चरिंग एफ़्टर uc.connect का उपयोग कर सकता हूं? – danielad
आकस्मिक पाठक के लिए, Jsoup को HttpURLConnection के इनपुटस्ट्रीम को सीधे पास करना संभव है। विवरण के लिए निम्नलिखित उत्तर देखें: http://stackoverflow.com/a/42085445/363573 – Stephan
यह Jsoup केवल समाधान भी देखें: http://stackoverflow.com/a/34943161/363573 – Stephan
आप आसानी से प्रॉक्सी
System.setProperty("http.proxyHost", "192.168.5.1");
System.setProperty("http.proxyPort", "1080");
Document doc = Jsoup.connect("www.google.com").get();
धन्यवाद! बहुत आसान। – vikingsteve
और कॉल के बाद शून्य पर सेट करना न भूलें अन्यथा अन्य कॉल जिन्हें इसकी आवश्यकता नहीं है, बहुत धीमी हो जाएगी – Dejell
आसान, त्वरित और काम कर रहा है। यह जवाब स्वीकार किया जाना चाहिए। – Gondy
सेट कर सकते हैं और यदि आप HTTPS मेरे जैसे के बाद कर रहे हैं, कोशिश करने के लिए याद
System.setProperty("https.proxyHost", "192.168.5.1");
System.setProperty("https.proxyPort", "1080");
Document doc = Jsoup.connect("www.google.com").get();
यह गैर सिस्टम विस्तृत समाधान भी देखें: http://stackoverflow.com/a/34943161/363573 – Stephan
System.setProperty("http.proxyHost", "192.168.5.1");
System.setProperty("http.proxyPort", "1080");
Document doc = Jsoup.connect("www.google.com").get();
यह वह जगह है गलत समाधान है, क्योंकि आम तौर पर पार्स बहु-क्रम है और हम आमतौर पर प्रॉक्सी बदलने की जरूरत है। यह कोड सभी धागे के लिए केवल एक प्रॉक्सी सेट करता है। Jsoup.Connection का उपयोग करने के लिए इतना बेहतर है।
इस मामले में जेएसओपी के लिए यूआरएल कनेक्शन खोलें और इसे पार्सिंग के लिए यूआरएल इनपुटस्ट्रीम दें। @ रयान का समाधान इसका वर्णन करता है: http://stackoverflow.com/a/8445790/363573 – Stephan
आप Jsoup 1.9.1 से पहले कार्यक्रम
final String authUser = "USERNAME";
final String authPassword = "PASSWORD";
Authenticator.setDefault(
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
authUser, authPassword.toCharArray());
}
}
);
..
System.setProperty("http.proxyHost", "192.168.5.1");
System.setProperty("http.proxyPort", "1080");
..
चलाने से पहले इस जोड़ने के लिए पसंद कर सकते हैं: लिखने के लिए कम कोड (:
// Setup proxy
Proxy proxy = new Proxy( //
Proxy.Type.HTTP, //
InetSocketAddress.createUnresolved("127.0.0.1", 8080) //
);
// Fetch url with proxy
Document doc = Jsoup //
.connect("http://www.example.com/") //
.proxy(proxy) //
.userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2") //
.header("Content-Language", "en-US") //
.get();
Jsoup 1.9.1 और बाद के संस्करण)
// Fetch url with proxy
Document doc = Jsoup //
.connect("http://www.example.com/") //
.proxy("127.0.0.1", 8080) // sets a HTTP proxy
.userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2") //
.header("Content-Language", "en-US") //
.get();
संदर्भ:
बजाय इस कोड का प्रयास करें:
प्रॉक्सीURL url = new URL("http://www.example.com/");
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8080)); // or whatever your proxy is
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy);
hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
uc.setRequestProperty("Content-Language", "en-US");
uc.setRequestMethod("GET");
uc.connect();
Document doc = Jsoup.parse(uc.getInputStream());
Jsoup समर्थन का उपयोग करता है, v1.9.1 के बाद से।
proxy(Proxy p)
proxy(String host, int port)
जो तुम इस तरह इसका इस्तेमाल कर सकते हैं::
Jsoup.connect("...url...").proxy("127.0.0.1", 8080);
आप प्रमाणीकरण की जरूरत है, तो आप Authenticator
दृष्टिकोण का उल्लेख उपयोग कर सकते हैं Connection
class निम्न विधियों है @Navneet Swaminathan द्वारा या बस system properties सेट करें:
System.setProperty("http.proxyUser", "username");
System.setProperty("http.proxyPassword", "password");
या
System.setProperty("https.proxyUser", "username");
System.setProperty("https.proxyPassword", "password");
- 1. क्या PHP के लिए jsoup-like HTML पार्सर है?
- 2. बढ़ावा देने के लिए प्रॉक्सी समर्थन कैसे जोड़ें :: asio?
- 3. Jsoup
- 4. क्या jsoup xpath का समर्थन करता है?
- 5. jsoup
- 6. .NET HTML डोम पार्सर?
- 7. Jsoup
- 8. सेवा संदर्भ जोड़ें प्रॉक्सी
- 9. पायथन smtplib प्रॉक्सी समर्थन
- 10. मैं Jsoup में स्थानीय HTML फ़ाइल कैसे लोड करूं?
- 11. Jsoup
- 12. सरल HTML डोम पार्सर: तत्वों को कैसे सम्मिलित करें
- 13. JSoup
- 14. पायथन का मशीनी प्रॉक्सी समर्थन
- 15. HTML तालिका सामग्री निकालने के लिए JSoup का उपयोग
- 16. पाइथन अनुरोधों में https प्रॉक्सी समर्थन लाइब्रेरी
- 17. wp_nav_menu पर कस्टम HTML कैसे जोड़ें?
- 18. मैं Jsoup का उपयोग कर HTML पेड़ को कैसे पार कर सकता हूं?
- 19. एचटीएमएल पार्सर
- 20. Jsoup आंशिक पृष्ठ
- 21. एनोर्म पार्सर को कैसे समझें?
- 22. ग्रहण मौजूदा मेवेन परियोजना jpa समर्थन जोड़ें?
- 23. चयन Jsoup और सभी तत्वों
- 24. प्रॉक्सी
- 25. फॉर्म सामग्री को नष्ट किए बिना आंतरिक HTML में जोड़ें
- 26. प्रॉक्सी
- 27. कैसल डायनामिक प्रॉक्सी: इंटरफ़ेस को प्रॉक्सी करने पर प्रॉक्सी को बराबर कैसे करें?
- 28. कस्टम HTML टैग के लिए गुण जोड़ें
- 29. JSoup वर्ण एन्कोडिंग समस्या
- 30. एंड्रॉयड - android_asset html फ़ाइल
हम्म, आप के बजाय HtmlUnit उपयोग करने की कोशिश की है? यह कार्य – raven
पर होना चाहिए http://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm – swanliu
याहू मैंने उपयोग किया है लेकिन मैं अभी भी लगता है कि jsoup मेरी आवश्यकता के लिए बेहतर काम करता है। मैं उलझन में हूं कि jsoup का उपयोग कर प्रॉक्सी के साथ कुशलता से काम कैसे करें। – Himanshu