鱼C论坛

 找回密码
 立即注册
查看: 3361|回复: 5

python爬虫编码问题

[复制链接]
发表于 2017-3-10 14:06:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 玄夜Python之路 于 2017-3-15 12:01 编辑

html.encoding获取的编码是:ISO-8859-1
但是在下载到615章时却出现乱码,而当前页面(615_url=http://www.23us.com/html/0/298/1964116.html)的编码格式就是ISO-8859-1呀,有点不知所以然,从度娘那儿得知不仅有html.encoding来获取编码,还有html.apparent_encoding获取编码,亦或有requests.utils.get_encodings_from_content(page_content.text)获取编码的,有点迷糊,望哪位大侠详细指点一二


补充:
        爬取是编码没问题,在写入文件也就是下载到本地时报编码错误


2017.3.15补充:
解析到615,634,697,1062,1076,1305,1335,1346,1355章节时编码错误,百度说是Python爬取gzip压缩网页问题,可根据这个网页(Python爬取网页Utf-8解码错误及gzip压缩问题的解决办法 - 知乎专栏
https://zhuanlan.zhihu.com/p/25095566?refer=zjying2000)提高的信息并没有得到解决,不知道还有谁曾遇到过此问题!!!望大神解惑一下。
我仔细分析了一下这些网页其头文件中都是Accept-Encoding:gzip, deflate,如图:Accept-Encoding(此图暂时上传不了)我将headers复制粘贴吧:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:www.23us.com
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 BIDUBrowser/7.6 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:86C74E7B-700F-405A-96FD-DC2B68C49A9D
1489125733(1).png
QQ图片20170315115610.png
QQ图片20170315115700.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-10 14:40:11 | 显示全部楼层
本帖最后由 591821661 于 2017-3-10 14:44 编辑


我恰巧最近也在学爬虫,建议你用chardet获取网页编码格式试试。
举个例子
  1. import urllib.request
  2. import chardet
  3. response = urllib.request.urlopen(url)
  4. html = response.read()
  5. html = response.read()
  6. a=chardet.detect(html)
  7. encode=a['encoding']
  8. if encode == 'GB2312':
  9.         encode='GBK'
  10. html = html.decode(encode)              
复制代码

补充!:但是我帮你看了下这个网页的编码http://www.23us.com/html/0/298/1964116.html
它的编码格式是GBK啊!
  1. <!DOCTYPE html><head>
  2. <title>斗破苍穹-正文 第六百一十五章 幽海纳戒-顶点小说</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  4. <meta name="keywords" content="斗破苍穹,天蚕土豆,正文 第六百一十五章 幽海纳戒,在线阅读" />
  5. <meta name="description" content="顶点小说整理斗破苍穹全集无弹窗在线阅读,当前章节:正文 第六百一十五章 幽海纳戒" />
  6. <meta name="mobile-agent" content="format=html5;url=http://m.23us.com/html//0/298/1964116.html">
  7. <meta http-equiv="Cache-Control" content="no-transform" />
  8. <meta http-equiv="Cache-Control" content="no-siteapp" />
  9. <link rel="stylesheet" href="/themes/xiaoshuo/style.css" type="text/css"/>
  10. <script language="javascript" type="text/javascript" src="/scripts/xiaoshuo.js"></script>
  11. <script type="text/javascript">var preview_page = "1964113.html",next_page = "1964119.html",index_page = "/html//0/298/",article_id = "298",chapter_id = "1964116";function jumpPage(event){var evt =event?event:window.event;if(evt.keyCode==37) location=preview_page;if (evt.keyCode==39) location=next_page;if (evt.keyCode==13) location=index_page;}document.onkeydown=jumpPage;</script>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-10 15:12:41 | 显示全部楼层
591821661 发表于 2017-3-10 14:40
我恰巧最近也在学爬虫,建议你用chardet获取网页编码格式试试。
举个例子
补充!:但是我帮你看了下这 ...

是GBK,但是gbk解析不出来,报错:UnicodeEncodeError: 'gbk' codec can't encode character '\xb6' in position 30: illegal multibyte sequence
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-10 15:15:45 | 显示全部楼层
591821661 发表于 2017-3-10 14:40
我恰巧最近也在学爬虫,建议你用chardet获取网页编码格式试试。
举个例子
补充!:但是我帮你看了下这 ...

从源码看是gbk,但是你用html.encoding获得的是ISO-8859-1,用ISO-8859-1是可以解析的,用gbk是解析不出来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-10 15:48:14 | 显示全部楼层
591821661 发表于 2017-3-10 14:40
我恰巧最近也在学爬虫,建议你用chardet获取网页编码格式试试。
举个例子
补充!:但是我帮你看了下这 ...

已解决!不过还是谢谢你思路,让我发现我的问题方向错误

[python]读文件的时候遇到一个编码错误,不知道该怎么解决-CSDN论坛-CSDN.NET-中国最大的IT技术社区
http://bbs.csdn.net/topics/390527865
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-16 09:00:45 | 显示全部楼层
别沉下去啊!那位大神有空,帮我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-25 21:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表