刚学python,抓中文网页遇到编码的问题,怎么转换也不行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了刚学python,抓中文网页遇到编码的问题,怎么转换也不行相关的知识,希望对你有一定的参考价值。

    可以用现成的框架,比如scrapy,已经帮你处理了编码的问题。

    如果一定要自己写的话,可以先看一下你抓取站点的编码,一边页面里都会有,比如百度知道里的:

    <meta http-equiv="content-type" content="text/html;charset=gbk" />说明是gbk编码。

参考技术A 你是py2,还是py3的
你看下这样写encoding='gb18030'
如果没有帮到你请追问

python抓网页的编码问题

小弟刚接触python,抓第一个网页就过不去编码这个坎`请高手赐教,代码如下:

#coding = gb2312
import urllib2
from BeautifulSoup import BeautifulSoup

outfile = open("lsxk.txt", "w")
for i in range(1,2): #第一页
url= "http://bbs.scu.edu.cn/wForum/disparticle.php?
boardName=SCUExpress&ID=1735295349&pos=-1&page=%d" % i
doc = urllib2.urlopen(url).read()
soup = BeautifulSoup(doc,fromEncoding="gb2312")
print >> outfile,doc #输出到文本
outfile.close()

抓到txt中的内容是中文,但使用beautifulSoup后就乱码了`
BS的文档说使用soup = BeautifulSoup(doc, fromEncoding="gb2312"),
还是不能正确编码.print出来报错是gb2312和utf-8不能编码网页中的某些字符.

单独使用编码也不能解决:
import codecs
print open("lsxk.txt").read().decode("utf-8")

可能说的不是很清楚`以上是我遇到的问题们,还请高手帮帮忙,不甚感谢!

BeautifulSoup 版本有问题,使用3.03就可以了

import urllib2
from BeautifulSoup import BeautifulSoup

f = urllib.urlopen('http://www.baidu.com')

html=f.read()
f.close()
soup = BeautifulSoup()
soup.feed(html)
print soup
参考技术A BeautifulSoup() 不能直接 指定 编码

还有编码尽量 用GB18030 不要用GBK

以上是关于刚学python,抓中文网页遇到编码的问题,怎么转换也不行的主要内容,如果未能解决你的问题,请参考以下文章

python抓网页的编码问题

刚学Python,遇到No Python Interpreter configured for the project,怎么解决?

python爬虫抓取到的数据用网页打开时是乱码,怎么解决

url编码问题在python中怎么解决

网页内容以&#开头以;结尾的编码(&#22235;)转汉字--python

python3 requests爬取gbk时候遇到编码的坑