这篇文章主要介绍了Python BeautifulSoup中文乱码问题的2种解决方法,需要的朋友可以参考下

解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 复制代码 代码如下:

在刚开始测试的时候发现,虽然输出是乱码的,但是写在文件里面却是正常的.然后在网上找了找解决办法才发现 print一个对象的逻辑:内部是调用对象的__str__得到对应的字符串的,此处对应的是soup的__str__ 而针对于soup本身,其实已经是Unicode编码,所以可以通过指定__str__输出时的编码为GBK,以使得此处正确显示非乱码的中文 而对于cmd:(中文的系统中)编码为GBK,所以只要重新编码为gb18030就可以正常输出了 就是下面这行代码 复制代码 代码如下: print (soup.title).encode('gb18030')

from bs4 import BeautifulSoup
import urllib2 url = 'http://www.jb51.net/'
page = urllib2.urlopen(url) soup = BeautifulSoup(page,from_encoding="utf8")
print soup.original_encoding
print (soup.title).encode('gb18030') file = open("title.txt","w")
file.write(str(soup.title))
file.close() for link in soup.find_all('a'):
print link['href']

解决方法二: BeautifulSoup在解析utf-8编码的网页时,如果不指定fromEncoding或者将fromEncoding指定为utf-8会出现中文乱码的现象。 解决此问题的方法是将Beautifulsoup构造函数中的fromEncoding参数的值指定为:gb18030 复制代码 代码如下:

import urllib2
from BeautifulSoup import BeautifulSoup page = urllib2.urlopen('http://www.jb51.net/');
soup = BeautifulSoup(page,fromEncoding="gb18030")
print soup.originalEncoding
print soup.prettify()

最新文章

  1. XtraFinder到底好在哪里(标签、隐藏文件、路径拷贝与显示、从这里启动)
  2. java 代码的细节优化
  3. css翻页样式
  4. 2014年3月份第1周51Aspx源码发布详情
  5. FZU 1343 WERTYU --- 水题
  6. AutoResetEvent 类的使用说明
  7. cocos2d-x 之Scene和Layer
  8. Android实现Excel表格,且表格能左右、上下滑动
  9. PHP配置安全小技巧
  10. Unity与Android间的交互
  11. vs17 破解密钥
  12. python_flask项目(BBS)_01
  13. Python Note1: Pycharm的安装与使用
  14. Codeforces 235C Cyclical Quest 字符串 SAM KMP
  15. 大数据搜索引擎之elasticsearch使用篇(一)
  16. Matlab实现单层感知机网络识别字母
  17. Qt学习 之 QWebView
  18. mysql索引使用策略及优化
  19. servlet-servletContext网站计数器
  20. Windows2003终端服务器超出了最大连接数的问题解决方案

热门文章

  1. 服务器如何防ssh服务暴力破解??
  2. 开箱即用 - Memcache
  3. orchard相关网址
  4. Struts入门(二) 配置文件的讲解
  5. 关于Ueditor 前后端分离实现文件上传到独立服务器的问题 望大神们赐教
  6. SQL SERVER BUG--Alwayson日志备份报错
  7. 什么是MongoDB、特点、历史、下载和工具
  8. [UWP小白日记-12]使用新的Composition API来实现控件的阴影
  9. gridcontrol datatemplate trigger
  10. java http url post json