दिलचस्प पोस्ट
$ स्थान / html5 और हैशबैंग मोड / लिंक रीरलाईटिंग के बीच स्विचिंग एंड्रॉइड SQLite डेटाबेस: धीमा प्रविष्टि कार्यवाही के नीचे छाया निकालें मैं फ़ायरफ़ॉक्स में बाहरी HTML कैसे करूं? अक्षांश परिभाषा में टिल्ड (~) क्या है? मैं स्विफ्ट में टाइप एरेज़ कैसे बढ़ा सकता हूं? एंड्रॉइड में हिस्सेदारी को अनुकूलित कैसे करें? Google API के माध्यम से उपयोगकर्ता जानकारी प्राप्त करें बाइनरी और पाठ मोड में लिखे गए फ़ाइलों के बीच का अंतर जावास्क्रिप्ट में '1' से '0001' कन्वर्ट करें कैसे रनटाइम पर असेंबली खोज पथ में फ़ोल्डर जोड़ने के लिए .net? यह रीजेक्स कैरेट की अनुमति क्यों दे रहा है? अक्षरों की संख्या को 10 तक सीमित करने के लिए नियमित अभिव्यक्ति केवल डिबग बिल्ड के लिए विजुअल स्टूडियो पोस्ट-बिल्ड इवेंट कैसे चलाएं Microsoft.WebApplication.targets नहीं मिला, बिल्ड सर्वर पर। आपका समाधान क्या है?

Urllib2 के साथ प्रॉक्सी

मैं निम्न के साथ यूआरएल खोलता हूं:

site = urllib2.urlopen('http://google.com')

और जो मैं करना चाहता हूं वह प्रॉक्सी के साथ उसी तरह से जुड़ता है, मुझे कहीं कह रहा था:

site = urllib2.urlopen('http://google.com', proxies={'http':'127.0.0.1'})

लेकिन वह या तो काम नहीं कर रहा था

मुझे पता है urllib2 को प्रॉक्सी हैंडलर की तरह कुछ है, लेकिन मैं उस समारोह को याद नहीं कर सकता

वेब के समाधान से एकत्रित समाधान "Urllib2 के साथ प्रॉक्सी"

 proxy = urllib2.ProxyHandler({'http': '127.0.0.1'}) opener = urllib2.build_opener(proxy) urllib2.install_opener(opener) urllib2.urlopen('http://www.google.com') 

आपको एक प्रॉक्सीहैंडलर स्थापित करना होगा

 urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler({'http': '127.0.0.1'}) ) ) urllib2.urlopen('http://www.google.com') 

डिफ़ॉल्ट सिस्टम प्रॉक्सी का उपयोग करने के लिए (उदाहरण के लिए http_support पर्यावरण चर से), वर्तमान अनुरोध के लिए निम्न कार्य (इसे urllib2 में विश्व स्तर पर स्थापित किए बिना):

 url = 'http://www.example.com/' proxy = urllib2.ProxyHandler() opener = urllib2.build_opener(proxy) in_ = opener.open(url) in_.read() 

आप पर्यावरण चर का उपयोग करके प्रॉक्सी सेट कर सकते हैं।

 import os os.environ['http_proxy'] = '127.0.0.1' os.environ['https_proxy'] = '127.0.0.1' 

urllib2 स्वचालित रूप से इस तरह से प्रॉक्सी हैंडलर्स जोड़ देगा आपको अलग-अलग प्रोटोकॉल के लिए अलग-अलग प्रॉक्सी सेट करने की आवश्यकता है अन्यथा वे विफल हो जाएंगे (प्रॉक्सी के माध्यम से नहीं जाने के संदर्भ में), नीचे देखें।

उदाहरण के लिए:

 proxy = urllib2.ProxyHandler({'http': '127.0.0.1'}) opener = urllib2.build_opener(proxy) urllib2.install_opener(opener) urllib2.urlopen('http://www.google.com') # next line will fail (will not go through the proxy) (https) urllib2.urlopen('https://www.google.com') 

बजाय

 proxy = urllib2.ProxyHandler({ 'http': '127.0.0.1', 'https': '127.0.0.1' }) opener = urllib2.build_opener(proxy) urllib2.install_opener(opener) # this way both http and https requests go through the proxy urllib2.urlopen('http://www.google.com') urllib2.urlopen('https://www.google.com') 

स्वीकृत उत्तर के साथ में: मेरे विवेक ने मुझे एक त्रुटि दी

 File "c:\Python23\lib\urllib2.py", line 580, in proxy_open if '@' in host: TypeError: iterable argument required 

प्रॉक्सी स्ट्रिंग के सामने http: // को जोड़ने का उपाय था:

 proxy = urllib2.ProxyHandler({'http': 'http://proxy.xy.z:8080'}) opener = urllib2.build_opener(proxy) urllib2.install_opener(opener) urllib2.urlopen('http://www.google.com') 

कोई भी अनुरोधों का उपयोग कर सकता है, अगर हम प्रॉक्सी का उपयोग करके एक वेब पेज तक पहुंचाना चाहते हैं पायथन 3 कोड:

 >>> import requests >>> url = 'http://www.google.com' >>> proxy = '169.50.87.252:80' >>> requests.get(url, proxies={"http":proxy}) <Response [200]> 

एक से अधिक प्रॉक्सी भी जोड़ सकते हैं।

 >>> proxy1 = '169.50.87.252:80' >>> proxy2 = '89.34.97.132:8080' >>> requests.get(url, proxies={"http":proxy1,"http":proxy2}) <Response [200]> 

इसके अलावा कमांड लाइन सत्र के लिए प्रॉक्सी सेट करें एक कमांड लाइन खोलें जहां आप अपनी स्क्रिप्ट को चलाना चाहते हैं

 netsh winhttp set proxy YourProxySERVER:yourProxyPORT 

उस टर्मिनल में अपनी स्क्रिप्ट चलाएं

Urllib2 एक वास्तविक ब्राउज़र के रूप में प्रस्तुत करने में सक्षम कैसे हो सकता है क्योंकि कई स्क्रिप्ट साइट को स्क्रैप करने से स्क्रिप्ट ब्लॉक कर देगी?

उदाहरण कोड:

 import sys import urllib2 from bs4 import BeautifulSoup parser = "html.parser" quote_page = "https://www.bloomberg.com/quote/SPX:IND" proxy = urllib2.ProxyHandler({'http': 'myproxy:3128'}) opener = urllib2.build_opener(proxy) urllib2.install_opener(opener) page = urllib2.urlopen(quote_page) soup = BeautifulSoup(page, parser) print soup.prettify()