我了解了如何从https://automatetheboringstuff.com废弃网站。我想废弃内容为中文的http://www.piaotian.net/html/3/3028/1473227.html并将其内容写入.txt文件。但是,.txt文件包含随机符号,我认为这是一个编码/解码问题。
我已经读过这个帖子“how to decode and encode web page with python?”,并认为我网站的编码方法是“gb2312”和“windows-1252”。我试过用这两种编码方法解码但是失败了。
有人可以向我解释我的代码问题吗?我对编程很陌生,所以请让我知道我的误解!
此外,当我从代码中删除“html.parser”时,.txt文件变为空,而不是至少包含符号。为什么会这样?
import bs4, requests, sys
reload(sys)
sys.setdefaultencoding("utf-8")
novel = requests.get("http://www.piaotian.net/html/3/3028/1473227.html")
novel.raise_for_status()
novelSoup = bs4.BeautifulSoup(novel.text, "html.parser")
content = novelSoup.select("br")
novelFile = open("novel.txt", "w")
for i in range(len(content)):
novelFile.write(str(content[i].getText()))
答案 0 :(得分:1)
novel = requests.get("http://www.piaotian.net/html/3/3028/1473227.html")
novel.raise_for_status()
novel.encoding = "GBK"
novelSoup = bs4.BeautifulSoup(novel.text, "html.parser")
出:
<br>
一元宗,坐落在青峰山上,绵延极长,现在是盛夏时节,天空之中,太阳慢慢落了下去,夕阳将影子拉的很长。<br/>
<br/>
一片不是很大的小湖泊边上,一个约莫着十七八岁的青衣少年坐在湖边,抓起湖边的一块石头扔出,顿时在湖边打出几朵浪花。<br/>
<br/>
叶希文有些茫然,他没想到,他居然穿越了,原本叶希文只是二十一世纪的地球上一个普通的大学生罢了,一个月了,他才后知后觉的反应过来,这不是有人和他进行恶作剧,而是,他真的穿越了。<br/>
请求将自动解码服务器中的内容。最 unicode charsets无缝解码。
当您提出请求时,请求会对此进行有根据的猜测 基于HTTP头的响应编码。文本编码 当您访问r.text时,将使用Requests猜测。你可以找到 请求正在使用什么编码,并使用r.encoding更改它 属性:
>>> r.encoding 'utf-8' >>> r.encoding = 'ISO-8859-1'
如果更改编码,请求将使用新值 r.encoding每当你调用r.text。