我在爬取一个论坛的页面的时候,遇到一个问题:有个别页面没法转码。
比方说论坛的列表页,我要爬取 10 页,然后转成 Unicode 码,保存下来,大部分页面都是正常的,但是会有两个页面没有转成 Unicode 。但是这 10 个页面都是可以取到数据的,现在问题就出在转码上。我很奇怪,这 10 个页面头部都是下面的代码,都是用的 gbk 编码。为什么有的没法转换。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="
http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
我用下面的语句进行转换
def encoding(bm):
types = ['utf-8','utf-16','gb2312','gbk']
printtxt(bm)
for type in types:
try:
return bm.decode(type) #我把这里的 type 换成'gbk'后,该能转换的还能转换,那两个还是没有转成。
except:
pass
为什么 10 个页面都是一样的,有的能转成,有的转不成呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/303031
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.