pyhon爬虫中文乱码

pyhon爬虫中文乱码

爬到的网页,在调试模式看着是中文,用输出看也是中文,但是存入变量就编码格式不对了。

问题出现的环境背景及自己尝试过哪些方法

下面是源码

#coding: utf-8
import requests
import json
from bs4 import BeautifulSoup
 
url = 'https://www.3ajiepai.com/forum-190-1.html'
strhtml = requests.get(url)
# 由于目标是gbk,接受到的是乱码,所以这里需要转换编码格式
strhtml.encoding = 'gb18030'
soup = BeautifulSoup(strhtml.content, "html.parser")
print soup.original_encoding
print soup.title
data = soup.select('#waterfall li')
 
list = []
for item in data:
    imgs = item.find('img')
    name = item.select(".xw0 a")[0]
    author = item.select(".auth.cl .a_name a")[0]
    names = name.text.encode("utf8")
    result = {
        "name": names,
    }
    print (result)
    list.append(result)
print (list)
 
# 写入本地文件
test_dict = { 'start': list}
json_str = json.dumps(test_dict)
new_dict = json.loads(json_str)
with open('data.json', 'w') as f:
    json.dump(new_dict, f)
    print("写入文件完毕。。。")

下图是调试模式图片
调试模式

下图是控制输出图片
控制台输出

下图是生成文件图片
生成文件

求大神帮忙解决中文编码乱码问题,不胜感激。

阅读 3.3k
3 个回答

不知道你为什么要把name encode?
直接names = name.text不就行了

python3的话,直接name.text是正常的,不用encode了

clipboard.png

文件也是正常的

clipboard.png

新手上路,请多包涵

试试json.dumps()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题