我正在解析网页内容,以分离出某网站的新闻文章正文,为此我使用urllib.request来检索文章网页的源代码,并分离出正文。但是,urllib把 "ç "这样的字符作为它的utf-8符号 "c387 "放到python字符串中。对于'"'和"""字符,它也是这样做的,打印成'e',后面跟着一组数字。这在试图阅读文章时非常恼火,因此需要解决。我可以在文章中循环,用一个繁琐的函数将每一个可识别的utf-8代码改成实际的字符,但我想知道是否有一种方法可以更容易做到这一点。
举个例子,我的程序当前的输出结果可能是。e2809eThis country doesn't...e2809d
我希望它是:„This country doesn't...”
注: 我已经检查了网页的源代码,它只是使用了这些 "特殊 "字符,所以这肯定是urllib的问题。
先谢谢你了!
urllib返回的是字节。
>import urllib
>url = 'https://stackoverflow.com/questions/62085906'
>data = urllib.request.urlopen(url).read()
>type(data)
bytes
>idx = data.index(b'characters like')
>data[idx:idx+20]
b'characters like "\xc3\xa7"'
现在,让我们试着把它解释为utf -8:
>data[idx:idx+20].decode('utf-8')
'characters like "ç"'
8: Et voilà!