为了账号安全,请及时绑定邮箱和手机立即绑定

BeautifulSoup做爬虫返回的网站是乱码! 郁闷

BeautifulSoup做爬虫返回的网站是乱码! 郁闷

有事烧纸 2016-02-12 01:11:41
html_outputer.py :html_parser.py:得到的网站:----------------------------------------------看到网上的方法修改soup = BeautifulSoup(html_cont, "html.parser", from_encoding="utf-8")为soup = BeautifulSoup(html_cont, "html.parser", fromEncoding=”gb18030″)没有作用,并且提示:求指教,感谢大家!!
查看完整描述

3 回答

?
Davidham3

TA贡献8条经验 获得超0个赞

这个跟编码有关系,你在写入文件的时候,最好是用with open的方式

 1. 

with open("output.html", "w", encoding = 'utf-8') as f:
    f.write("巴拉巴拉,巴拉巴拉")

2.

f = open("output.html", 'w', encoding = 'utf-8')
f.write("balabala")
f.close()

在编写爬虫时,先打开你要爬的网站页面,右键空白处,查看源代码,一般最上面都指定了这个页面的编码,比如

<meta charset="utf-8">

这时候,按照这个编码写入文件就行,在open函数中指定编码为utf-8,就不会报错了。

查看完整回答
反对 回复 2016-02-27
?
squirel

TA贡献2条经验 获得超0个赞

  在你html文件中 <html>后面加一行

<meta http-equiv="Content-Type" Content="text/html; charset=utf-8"/>

告诉浏览器用utf8编码读取数据

查看完整回答
反对 回复 2016-02-20
?
hldh214

TA贡献12条经验 获得超3个赞

其实乱码是控制台造成的, 你看看PS的编码, 是GBK的, 但是返回的数据是utf-8的, 导致乱码

so, 在输出之前encode一下就好啦

查看完整回答
反对 回复 2016-02-12
  • 有事烧纸
    有事烧纸
    这个不是在输出之前encode吗? fout.write("<td>%s</td>" % data['title'].encode('utf-8')) fout.write("<td>%s</td>" % data['summary'].encode('utf-8')) 请讲清楚一些 谢谢
  • 3 回答
  • 0 关注
  • 2331 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信