17623095765 发表于 2021-3-29 00:31:49

用with保存requese.get().text文件后 文件有些地方出了乱码

import requests,bs4,re
headers={'User-Agent':'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'}
res=requests.get('http://www.860816.com/aricle.asp?id=1785',headers=headers)
with open('text.txt','w',encoding='utf-8') as name:
    name.write(res.text)
sopu=bs4.BeautifulSoup(res.text,'html.parser')


我打算保存各个城市的排名及数据,但是城市名称里是乱码,我以为是encoding='utf-8'的问题 ,改为encoding='gbk',报错。

https://blog.csdn.net/DCFANS/article/details/90199487
用了上面这个网站的方式,查了是gbk。

洋洋痒 发表于 2021-3-29 09:38:16

import requests,bs4,re
headers={'User-Agent':'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14'}
res=requests.get('http://www.860816.com/aricle.asp?id=1785',headers=headers)
res.encoding='gbk'
with open('text.txt','w',encoding='utf-8') as name:
    name.write(res.text)
sopu=bs4.BeautifulSoup(res.text,'html.parser')

洋洋痒 发表于 2021-3-29 09:42:09

本帖最后由 洋洋痒 于 2021-3-29 10:35 编辑

你爬到的是一堆以二进制形式存储的数据res
需要以gbk编码的方式修改成字符串
然后把字符串写入文件
所以加一句res.encoding='gbk'

591821661 发表于 2021-3-29 15:09:35

res.content.decode("gb2312")
页: [1]
查看完整版本: 用with保存requese.get().text文件后 文件有些地方出了乱码