Python彻底解决采集网页乱码问题
2017-03-02 23:25
232 查看
实战十几万网页采集后的修正版:
python彻底解决网页采集乱码问题,准确率 99%def download_page(indexurl, timeout=10): """ 下载网站数据并返回 :param indexurl: :param timeout: :return: """ try: res = urllib2.urlopen(indexurl, timeout=timeout) code = res.getcode() info = res.info() charset = None if info: m = re.findall(r'charset=([a-zA-Z0-9_-]+)', ' '.join(info.headers), re.I) if m: charset = str(m[0]).lower() if code == 200: html = res.read() if not charset and html: charset = pick_charset(html) # 如果完全采不到 charset,默认使用 gbk 反正都是乱码 if not charset or charset == "gb2312": charset = 'gbk' if charset and charset != 'utf-8': try: html = html.decode(charset).encode('utf-8') except: pass else: html = '' return (code, res.geturl(), charset, html ) except urllib2.URLError, e: return str("%r" % e) except socket.timeout, e: return str("%r" % e) except: return str(sys.exc_info())
注意引入必要的包,如果有不足的地方,欢迎指正。
相关文章推荐
- python使用requests爬取网页,遇到中文出现乱码的编码问题及解决
- python 解决抓取网页中的中文显示乱码问题
- 解决Python网页爬虫之中文乱码问题
- [分享]解决采集UTF-8网页乱码问题
- python中requests爬去网页内容出现乱码问题解决方法介绍
- Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
- python 采集中文乱码问题的完美解决方法
- 彻底解决IE网页乱码问题 [转]
- Python+Requests安装及抓取网页源码中文乱码问题的解决
- 解决HttpWebRequest和HtmlAgilityPack采集网页中文乱码问题
- 抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程
- python 网页抓取中的中文乱码问题解决
- python第一个爬虫小程序以及遇到问题解决(中文乱码)+批量爬取网页并保存至本地
- 彻底解决IE网页乱码问题 [转]
- python 解决抓取网页中的中文显示乱码问题
- python使用requests爬取网页,遇到中文出现遇到中文出现乱码的编码问题及解决乱码的编码问题及解决
- python 采集中文乱码问题的完美解决方法
- Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
- 彻底解决jsp中文乱码问题(eclips 添加中文编码方式gb2312).
- 彻底解决程序乱码问题