Python 如何从UTF-8文件中检索原始字符串?
我正在用python和BeautifulSoup进行一些web抓取Python 如何从UTF-8文件中检索原始字符串?,python,utf-8,beautifulsoup,emoji,Python,Utf 8,Beautifulsoup,Emoji,我正在用python和BeautifulSoup进行一些web抓取 body = soup.find("article") tempvar = body.find() fuu = open('tempfile', 'w') tempvar = tempvar.encode('utf-8') fuu.write(str(tempvar)) fuu.close() fupa = open('tempfile') joji = BeautifulSoup(fupa,'html.parser') f
body = soup.find("article")
tempvar = body.find()
fuu = open('tempfile', 'w')
tempvar = tempvar.encode('utf-8')
fuu.write(str(tempvar))
fuu.close()
fupa = open('tempfile')
joji = BeautifulSoup(fupa,'html.parser')
fupa.close()
print(joji)
tempvar将包含html内容,有时带有表情符号。
我想稍后在真正的html文件中使用tempfile文件的内容
印刷品(joji)产生如下内容:
<b>mencapai\xc2\xa0batas aksara 140</b>, tapi sudah tentu itu tidak termasuk semua <i>tweet </i>yang tak pernah dihantar kerana pengguna tidak boleh nak luahkan apa yang mereka mahukan. Selepas <b>mengaktifkan aksara 280</b> pada <b>sejumlah kecil akaun </b>yang bertuah, <b>Twitter </b>mengatakan <b>hanya 1%</b> sahaja <b>pengguna yang capai had aksara 280</b>. Tulis panjang\xc2\xb2 nak buat karangan ka. \xf0\x9f\x98\x9c<br/>\n<br/>\nIa juga jarang berlaku bagi pengguna untuk mencapai aksara 280, hanya <b>2%</b> dari <i>tweet </i><b>melebihi aksara 190</b>. <b>Had aksara tweet sebanyak 280 </b>juga <b>mendapat lebih <i>likes </i>dan <i>retweets </i></b>daripada had aksara <i>tweet </i>sebanyak 140. \xf0\x9f\x98\x8a<br/>\n<br/>
aksara 140发布的推特并不适用于所有人,也不适用于其他人。随着aksara 280数量的增加,推特上的aksara 280数量增加了1%。Tulis panjang\xc2\xb2 nak buat karangan ka\xf0\x9f\x98\x9c
\n
\n如果你想在aksara 280上获得成功,那么你的tweet中有2%的内容是aksara 190。aksara的推文是280,而daripada的推文是140\xf0\x9f\x98\x8a
\n
tempvar
是一个Unicode字符串。要将其正确写入文件,请执行以下操作:
with open('tempfile', 'w', encoding='utf8') as fuu:
fuu.write(tempvar)
用以下文字将其读回:
with open('tempfile', encoding='utf8') as fupa:
...
您使用的是什么版本的Python和BeautifulSoup?我无法复制您的问题。python 3.6.3和BS4您在Windows上吗?你能试着将
str(joji)写入一个文件,并对其进行编码('utf-8')
,看看编码是否正确吗?它抛出了“write()参数必须是str,而不是bytes”。是的,我在Windows上制作一个简短的脚本,该脚本实际上与一个简短的输入文件示例一起工作,并将它们完全按照编写和工作状态发布。显示准确的输出(不是“类似这样的东西”)和所需的输出。这给了我们一些不用猜测就可以调试的东西。