python抓取网页内容时出错,UnicodeEncodeError: ✀gbk✀ codec can✀t encode character ✀尀ue4bf.....

2024-12-15 19:38:01
推荐回答(4个)
回答1:

问题是这样的,网页的数据应该是'utf-8'编码,这个可以在网页的head上面看得到,然后你爬网页的时候会把它转化成Unicode,出问题的是在print()这儿,对于print()这个函数,他需历雀要把内容转化为'gbk'编码才能显示出来. 然后解决办法是这样,你在转化后的Unicode编码友烂吵的string后面好侍,加上 .encode('GBK','ignore').decode('GBk') 也就是先用gbk编码,忽略掉非法字符,然后再译码,是不是很有道理 应该是这样的,因为我和你遇到同样的问题,现在解决了

回答2:

  • 在Python自带的交互式模式下编辑,交互式下,一行只能放一段代码import requests , 这一行要和下面你定义毁败的函纤敬颤数隔开为两段代码

  • 也就是import requests  要按回车键,然后在新的【>>>】开始处再输入你定义的函数代码

  • 一些网页可以用Python的urllib来抓取内容,基本上没有问题

  • 但是有的网页内容在浏览器看到的和抓取的稿茄有很大区别,抓取的基本上是框架实质内容没有

  • 比如必应词典,http://dict.bing.com.cn/#good


回答3:

方法正如楼下所说,这个问题是可以解升埋决的:
# -*- coding: utf8 -*-

a='\xa0ji!r-\n--a\吵宴蚂u30fbn1he海流llo@23\xb6既,然'
x=a.encode('gbk','ignore')
print(x)
print(x.decode('gbk'))
res:
ji!r-
--an1he海流llo@23既,然
此时祥盯成功在终端输出。至于原理,xhkczxzz解释的非常清楚了

回答4:

你确定该网页是GBK编码的吗?还是UTF8编码的?
试试把GBK换成UTF8看看。