2012-08-02 5 views
22

मेरा लक्ष्य Google खोज शब्द दर्ज करने के बाद पहले पृष्ठ में सभी लिंक से HTML निकालना है। मैं प्रॉक्सी के पीछे काम करता हूं इसलिए यह मेरा दृष्टिकोण है।त्रुटि - urlopen त्रुटि [Errno 8] _ssl.c: 504: EOF प्रोटोकॉल का उल्लंघन करने में हुई, मदद की आवश्यकता

1. मैंने पहले फॉर्म में खोज शब्द दर्ज करने के लिए मशीनीकरण का उपयोग किया, ive प्रॉक्सी और रोबोट सही ढंग से सेट करें।

2. लिंक निकालने के बाद, मैंने यूआरएल को अलग-अलग यूआरएल खोलने के लिए वैश्विक रूप से urllib2.ProxyHandler का उपयोग करके एक सलामी बल्लेबाज का उपयोग किया।

हालांकि यह मुझे यह त्रुटि देता है। इसे समझने में सक्षम नहीं है।

urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol 

उत्तर

4

यह एक ज्ञात बग है, इस लिंक की टिप्पणियों में इसके लिए कुछ समाधानों का उल्लेख कैसे किया गया है। उन्हें देखें, bug url आपके लिए उपयोगी हो सकता है।

+0

धन्यवाद, निलेश। मैंने पाया [यह] (https://bugs.launchpad.net/ubuntu/+source/openssl/+bug/965371/comments/9) काफी उपयोगी होने के बावजूद, यह तथ्य के बावजूद कि यह शायद सबसे अच्छा समाधान नहीं हो सकता है टीएलएस 2 छोड़ दें। – cloudrave

21

पायथन लाइब्रेरी मॉड्यूल की प्रतिलिपि बनाने और संपादित करने के बजाय, आप ssl_version कीवर्ड पैरामीटर को ओवरराइड करके एसएसएल मॉड्यूल में बंदर-पैच ssl.wrap_socket() कर सकते हैं। निम्नलिखित कोड का उपयोग किया जा सकता है। कोई अनुरोध करने से पहले इसे अपने कार्यक्रम की शुरुआत में रखें।

import ssl 
from functools import wraps 
def sslwrap(func): 
    @wraps(func) 
    def bar(*args, **kw): 
     kw['ssl_version'] = ssl.PROTOCOL_TLSv1 
     return func(*args, **kw) 
    return bar 

ssl.wrap_socket = sslwrap(ssl.wrap_socket) 
+0

नमस्ते यह एक आकर्षण की तरह काम करता है। क्या आप कृपया समझा सकते हैं कि यह कोड क्या कर रहा है – thinkingmonster

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