मैं कुछ वेब पृष्ठों को पार्स करने के लिए सुंदर सूप का उपयोग कर रहा हूं।सुंदर सूप और यूनिकोड समस्याएं
कभी कभी मैं निम्नलिखित की तरह एक "यूनिकोड नरक" त्रुटि प्राप्त: पर इस लेख के स्रोत को देखते हुए
TheAtlantic.com [http://www.theatlantic.com/education/archive/2013/10/why-are-hundreds-of-harvard-students-studying-ancient-chinese-philosophy/280356/]
हम इस ओग में देखें: विवरण मेटा संपत्ति :
<meta property="og:description" content="The professor who teaches Classical Chinese Ethical and Political Theory claims, "This course will change your life."" />
जब BeautifulSoup यह पार्स करता है, मैं देख रहा हूँ इस:
>>> print repr(description)
u'The professor who teaches\xa0Classical Chinese Ethical and Political Theory claims, "This course will change your life."'
,210
अगर मैं, UTF-8 में यह एन्कोडिंग की कोशिश इस अतः टिप्पणी की तरह चलता है: https://stackoverflow.com/a/10996267/442650
>>> print repr(description.encode('utf8'))
'The professor who teaches\xc2\xa0Classical Chinese Ethical and Political Theory claims, "This course will change your life."'
बस जब मैंने सोचा कि मैं नियंत्रण में मेरे सभी यूनिकोड मुद्दों, मैं अभी भी काफी समझ में नहीं आता क्या हो रहा है था, तो मैं कुछ प्रश्न पूछने जा रहा हूं:
1- सुंदर सूप
से \xa0
[लैटिन वर्णमाला अंतरिक्ष चरित्र] क्यों परिवर्तित करेगा? इस पृष्ठ पर वर्णमाला और शीर्षलेख यूटीएफ -8 हैं, मैंने सोचा कि सुंदर सूप एन्कोडिंग के लिए उस डेटा को खींचता है? इसे <space>
के साथ क्यों नहीं बदला गया था?
2- क्या रूपांतरण के लिए सफेद जगहों को सामान्य करने का कोई आम तरीका है?
3- जब मैंने यूटीएफ 8 को एन्कोड किया, तो \xa0
\xc2\xa0
का अनुक्रम कहाँ बन गया?
मैं जहां मुझे बनना चाहता हूं, मुझे प्राप्त करने में सहायता के लिए unicodedata.normalize('NFKD',string)
के माध्यम से सबकुछ पाइप कर सकता हूं - लेकिन मुझे यह समझना अच्छा लगेगा कि क्या गलत है और भविष्य में इस तरह की समस्या से बचें।
वाह। बहुत बहुत धन्यवाद, ब्रायन। यह एक अद्भुत विस्तृत प्रतिक्रिया है। मुझे 2byte अनुक्रम नहीं समझा, और यह 99% अन्य चिंताओं को बताता है! बीटीडब्लू - मैं काफी हद तक निश्चित हूं कि इसका उपयोग इस उदाहरण में किया गया था "सीएमएस क्रूफ़्ट" (कुछ ऐसा जो मैंने कई बार सामना किया है)। –
हाँ, एचटीएमएल का विश्लेषण करने की कोशिश करते समय "सीएमएस क्रूफ़्ट" हमेशा एक समस्या है। –