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