2015-05-01 6 views
5

के बजाय गिब्बरिश के रूप में प्रकट होता है, मैं एक वेबसाइट से एक स्ट्रिंग प्राप्त करने की कोशिश कर रहा हूं। मैं GET अनुरोध भेजने के लिए requests मॉड्यूल का उपयोग करता हूं।वेबसाइट से टेक्स्ट हिब्रू

text = requests.get("http://example.com") #send GET requests to the website 
print text.text #print the variable 

हालांकि, किसी कारण से, पाठ अस्पष्ट बजाय हिब्रू में प्रकट होता है:

<div> 
<p>שרת</p> 
</div> 

कठिन है जब मैं फ़िडलर के साथ यातायात सूंघ या अपने ब्राउज़र में वेबसाइट देखने के, मैं इसे हिब्रू में देखते हैं :

<div> 
<p>שרת</p> 
</div> 

वैसे, html कोड मेटा टैग कि एन्कोडिंग, जो utf-8 है परिभाषित करता है शामिल हैं। मैंने पाठ को utf-8 पर एन्कोड करने का प्रयास किया लेकिन यह अभी भी अस्पष्ट है। मैंने utf-8 का उपयोग करके इसे डेकोडे करने की कोशिश की, लेकिन यह UnicodeEncodeError अपवाद फेंकता है। मैंने घोषणा की कि मैं स्क्रिप्ट की पहली पंक्ति में utf-8 का उपयोग कर रहा हूं। इसके अलावा, जब मैं urllib मॉड्यूल में निर्मित अनुरोध भेजता हूं तो समस्या भी खुश होती है।

मैंने Unicode HOWTO पढ़ा, लेकिन अभी भी इसे ठीक करने में सक्षम नहीं हो सका। मैंने यहां कई धागे भी पढ़े हैं (UnicodeEncodeError अपवाद दोनों के बारे में और क्यों पाइथन में हेब्रू अस्पष्ट हो जाता है) लेकिन मैं अभी भी इसे ठीक करने का प्रबंधन नहीं कर सका।

मैं विंडोज मशीन पर पायथन 2.7.9 का उपयोग कर रहा हूं। मैं पाइथन आईडीएलई में अपनी स्क्रिप्ट चला रहा हूं।

अग्रिम धन्यवाद।

+0

आपको –

उत्तर

6

सर्वर एन्कोडिंग सही ढंग से घोषित नहीं कर रहा है।

>>> print u'שרת'.encode('latin-1').decode('utf-8') 
שרת 

text.text एक्सेस करने से पहले सेट text.encoding

text = requests.get("http://example.com") #send GET requests to the website 
text.encoding = 'utf-8' # Correct the page encoding 
print text.text #print the variable 
+0

टेक्स्ट के बजाय सामग्री का उपयोग करना चाहिए धन्यवाद बहुत बहुत धन्यवाद! मैं इसे खुद कभी नहीं ढूंढूंगा। एक बार फिर धन्यवाद! – ohad987

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