美丽之声:印地安语在用芬德尔打印到终端上时变成unicode。功能

2024-07-02 10:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想废弃流行的印第安(使用Scrapy)本地语言网站,创建一个最常用的印度语(马拉雅拉姆语)单词词典,然后从网站上使用BeautifulSoup解析响应,并使用

soup = BeautifulSoup(response.body, "lxml")
print(soup)

我在终端上得到这个输出

。。。你知道吗

<div class="articleBody common_text" id="content2044131">
<div class="col-md-12 col-sm-12 col-xs-12">
<p>വൈറസുകള്‍ എന്നൊരു സാധനമേ ഇല്ല, അത് ഭൂലോക തട്ടിപ്പാണ്. കേരളത്തിലെ പ്രശസ്തനെന്ന് അറിയപ്പെടുന്ന വൈദ്യരുടെ പ്രസ്താവന ആണിത്. മാത്രമല്ല വൈദ്യര്‍ കേരളത്തിലെ ഏറ്റവും വലിയ പീഡിയാട്രീഷനായ ഏതോ ഡോ. പിഷാരടിയോടു ചോദിച്ച് <a href="https://www.facebook.com/181790438911986/videos/313673832390312/"><strong>ഇക്കാര്യം ഉറപ്പുവരുത്തുക കൂടി ചെയ്തു</strong></a>. വൈദ്യരെയും പിഷാരടിയെയും പറഞ്ഞിട്ട് കാര്യമില്ല, കാരണം വൈറസുകളെ കാണാന്‍ സാധിക്കില്ലല്ലോ. പിന്നെ അവ ഉണ്ടെന്ന് എങ്ങനെ  വിശ്വസിക്കും?  </p>
<p>ഈ ലേഖനം എഴുതാന്‍ കാരണം വൈദ്യരും പിഷാരടിയും മാത്രമല്ല, ഈ അടുത്ത് ഒരാള്‍ ഇതിലും ഞെട്ടിക്കുന്ന ഒരു വാദം പറഞ്ഞു. ഇലക്ട്രോണ്‍, പ്രോട്ടോണ്‍ തുടങ്ങിയ സംഗതികളെല്ലാം ശാസ്ത്രത്തിന്റെ ഭാവന ആണത്രെ. ഇലക്ട്രോണ്‍ വിരുദ്ധരും വൈറസ് വിരുദ്ധരും ചോദിക്കുന്നത് 'കണ്ടിട്ടുണ്ടോ' എന്നാണ്. ഉത്തരം ഇല്ല എന്നുതന്നെ. പക്ഷെ കണ്ടാല്‍ മാത്രമേ വിശ്വസിക്കാന്‍ കഴിയുകയുള്ളോ? കാണാതെ എങ്ങനെ വിശ്വസിക്കും? ഇതാണ് ഈ ലേഖനത്തില്‍ പറയാന്‍ ഉദ്ദേശിക്കുന്നത്. </p>

。。。你知道吗

很好,但是在解析了我想要使用的部分之后

    div = soup.findAll("div", {"class": "articleBody common_text"})
    print(div)

我在终点站拿到这个

<div class="articleBody common_text" id="content2044131">\n<div class="col-md-12 col-sm-12 col-xs-12">\n<p>\u0d35\u0d48\u0d31\u0d38\u0d41\u0d15\u0d33\u0d4d\u200d \u0d0e\u0d28\u0d4d\u0d28\u0d4a\u0d30\u0d41 \u0d38\u0d3e\u0d27\u0d28\u0d2e\u0d47 \u0d07\u0d32\u0d4d\u0d32, \u0d05\u0d24\u0d4d \u0d2d\u0d42\u0d32\u0d4b\u0d15 \u0d24\u0d1f\u0d4d\u0d1f\u0d3f\u0d2a\u0d4d\u0d2a\u0d3e\u0d23\u0d4d. \u0d15\u0d47\u0d30\u0d33\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d46 \u0d2a\u0d4d\u0d30\u0d36\u0d38\u0d4d\u0d24\u0d28\u0d46\u0d28\u0d4d\u0d28\u0d4d 
\u0d05\u0d31\u0d3f\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28 \u0d35\u0d48\u0d26\u0d4d\u0d2f\u0d30\u0d41\u0d1f\u0d46 \u0d2a\u0d4d\u0d30\u0d38\u0d4d\u0d24\u0d3e\u0d35\u0d28 \u0d06\u0d23\u0d3f\u0d24\u0d4d. \u0d2e\u0d3e\u0d24\u0d4d\u0d30\u0d2e\u0d32\u0d4d\u0d32 \u0d35\u0d48\u0d26\u0d4d\u0d2f\u0d30\u0d4d\u200d \u0d15\u0d47\u0d30\u0d33\u0d24\u0d4d\u0d24

为什么它突然变成了原始的unicode?有没有合适的方法来解析它。为了得到信息,我打算在后面做的是从文章中删除单个单词,并将其存储到一个json文件中,其中包含相应的单词和出现的次数,有点像这样

{
  "സാധനമേ": 67,
  "കേരളത്തിലെ": 69,
  "ഒരാള്‍": 50,
  .
  .
  .
}

Tags: divcolclassu0d4du0d30u0d35u0d28u0d3e
1条回答
网友
1楼 · 发布于 2024-07-02 10:27:26

这和编码有关。通过对bs4对象使用utf-8编码,我能够获得所需的输出。你知道吗

改变

div = soup.findAll("div", {"class": "articleBody common_text"})
print(div)

div = soup.select(".articleBody")[0]
print(div.text.encode('utf-8'))

解决了问题。你知道吗

相关问题 更多 >