python抓取弹幕时全部繁体字乱码,抓取时还不是乱码,抓取之后显示乱码
这个问题可能是由于编码问题导致的。在抓取弹幕时,你需要确保将抓取到的文本以正确的编码方式保存下来,以避免乱码问题。
在 Python 中,你可以使用 encode() 方法将文本编码为指定的编码方式,然后使用 decode() 方法将编码后的文本解码为字符串。
设置编码形式
response.encoding = "utf-8" # 设置编码方式为 UTF-8
这种情况一般都是由于编码问题导致的,建议你检查以下几点问题
1、抓取的弹幕内容的编码格式与存储内容的编码格式不一致。
2、存储内容时未指定编码格式,Python 默认使用 ASCII 编码。
3、读取存储内容时未指定正确的编码格式。
4、系统默认编码与存储内容编码不一致。
一般是编码问题。不过弹幕 有的弹幕功能强大可以带表情 ,可能也是 乱码。不过你这个都是乱码,应该就是编码问题
response_text = response.content.decode('utf-8')
请求头 也设置一下
import requests
headers = {
'Content-Type': 'text/html; charset=utf-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
shopid为2的商品,在近5个月有升有降的,用模型预测会耗费很大的精力,所以采用加权平均值代替预测值的方法
shop_2_sql = "select * from predictSalesSummary where shopid=2"
shop_2_df = link_sqlite(shop_2_sql)
shop_2_df
from pyecharts import options as opts
from pyecharts.charts import Bar
x_names = shop_2_df["month"].tolist()
tao_bao = shop_2_df["amount"].tolist()
c = (
Bar()
.add_xaxis(x_names)
.add_yaxis("销售额", tao_bao)
.set_global_opts(
xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=20)),
title_opts=opts.TitleOpts(title="商品每个月销售额"),
)
)
c.render_notebook()
8月份、9月份、10月份的权重为0.2,0.2,0.6,计算得出11月份的销售额为2093万元,结合10月份的销售数据来看,11月份的销售额在 [2091,2094] 之间
np.sum(shop_2_df.iloc[4:,1]*np.array([0.2,0.2,0.6]))
# 2093.44
shop_2_df.iloc[4:,1].mean()
# 2094.47
要解决Python抓取弹幕时出现的乱码问题,你可以尝试以下步骤:
python print(response.encoding)
运行代码后,查看控制台输出的编码格式,看是否与预期一致。
python text = res.text.encode(response.encoding).decode('utf-8') html = etree.HTML(text)
这里使用encode(response.encoding)
将字符串编码转换为原始编码,然后使用decode('utf-8')
将其再次解码为UTF-8编码。
最终的代码应为:
python def get_data(url): response = requests.get(url, headers=headers) text = response.text.encode(response.encoding).decode('utf-8') data = etree.HTML(text) # 其他代码...
运行修改后的代码,查看抓取到的弹幕文本是否已经正常显示。
如果乱码问题仍然存在,可能是因为弹幕文本的编码格式与UTF-8不兼容。此时,可以尝试其他常见的编码格式,例如GBK等。
python document.save('demo.docx', encoding='utf-8')
添加encoding='utf-8'
参数,将文档保存为UTF-8编码。这样可以防止保存文档时出现乱码。
尝试以上步骤后,应该能够解决Python抓取弹幕时出现的乱码问题。如果问题仍然存在,可能是由于特殊字符导致的编码问题,可能需要更详细的调查和分析才能找到解决方案。