首页 > 其他分享 >scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题

scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题

时间:2022-11-23 15:02:49浏览次数:38  
标签:decode 编码 word encoding bytes 取后 乱码 print response

解决思路1、

循环暴力寻找编码,但是不如思路3

 def parse(self, response):
        print(response.text[:100])
        body = response.body#直接是bytes,response.text是str
        encodings = ['utf-8', 'gbk', 'gb2312', 'iso-8859-1', 'latin1']#实际可用response.encoding获得
        for encoding in encodings:
            try:
                print(body.decode(encoding)[:100])#decode必须是bytes
            except Exception as e:
                print('decode {0}, error: {1}\n'.format(encoding, e))
                pass

解决思路2、
download minddlewares中有个process_response方法,修改它的encoding即可需要自己组装一个修改了charset的页面response,利用HtmlResponse可以完美解决,实现中文乱码的解决,当然你要在setting.py中启用该download middleware

from scrapy.http import HtmlResponse
 
   def process_response(self,request, response, spider):
        # 修改页面编码
        if response.encoding == 'cp1252':
            response = HtmlResponse(url=response.url, body=response.body, encoding='utf-8')
        return response
解决思路3、

scrapy爬取编码为gb2312的网页时出现中文乱码
python3用库chardet查看编码方式;先用encode编码成bytes,再用decode编码成str

import chardet

txt_b=response.xpath('//title').extract()[0].encode(response.encoding)#对找到的具体内容用encode编码成bytes
print(chardet.detect(txt_b))
txt_str= txt_b.decode(response.encoding,errors='ignore')#对bytes内容用decode解码成str
print(txt_str)

 

标签:decode,编码,word,encoding,bytes,取后,乱码,print,response
From: https://www.cnblogs.com/kuba8/p/16918265.html

相关文章

  • jmeter中发出请求后,response data中的中文乱码了
    场景/报错:在jmeter中发出请求后,接收到的responsedata中的中文乱码了,显示如图:原因:编码方式有问题,这种情况应该是用ISO-8859-1读取了UTF-8解决方法:修改jmeter的配置文件,三步......
  • 怎样去掉word文档中的回车符号?
    1、如图,写着写着文档的时候会发现有回车字符,也不知道是怎么搞出来的,不好看!2、鼠标点击左上角word文档菜单栏的“文件”菜单。3、然后点击“文件”菜单下的“选项”菜单......
  • Windows2003英文版中文乱码问题的解决
    Windows2003英文版中文乱码问题的解决可以解决文件名乱码和文件内容乱码的问题。[1] 打开“控制面板”,双击“RegionalandLanguageOptions”图标,打开区域和语言设置窗口;[......
  • WordPress编辑器支持PowerPoint粘贴
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • windows elasticsearch中文乱码
    一:找到安装目录下的config jvm.options文件  二:修改或增加:-Dfile.encoding=GBK  参考文章地址:https://www.shuzhiduo.com/A/rV57OjRL5P/......
  • WordPress编辑器支持PowerPoint导入
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,......
  • [WordPress] 主题美化 樱花背景+灯笼特效+鼠标样式 [持续更新]
    樱花背景黑白主题适配//樱花背景特效<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"......
  • [WordPress] 添加文章更新或过期失效提示
    时间并不会被人们的思想所左右,却是我们一直在追着时间跑,从未放慢脚步。当你发布的某篇文章,经过了千百天还有人访问,可能是教程设置不生效,也可能是下载地址更换,这时候就需要......
  • WordPress 设置网站动态标题 教程
    前言我们经常逛别人的网站,有些网站当我们离开该页面浏览其他页面的时候,我们在离开的页面上面会看到比如本站的“你别走吖Σ(っ°Д°;)っ”这样的字样,当我们点回来的时......
  • WordPress全站左侧边栏添加联系站长按钮[WP教程]
    使用教程:也很简单,只需要在两个文件中添加一行代码就可以实现,具体演示效果可以查看本站觅知博客的效果1、后台主题设置—>自定义代码—>自定义CSS样式代码把下面的代码......