您的位置:首页 > 编程语言 > Python开发

【Python】beautifusoup解析HTML并将数据写入文件

2017-09-27 21:59 639 查看
Python版本:3.6

IDE:PyCharm

1.解析HTML(这里以www.baidu.com为例)

headers = {
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'
}
soup = BeautifulSoup(requests.get("https://www.baidu.com/",headers=headers).content,'lxml')
2.wb方式写入文件

# saveFile:将数据保存为文件
# @param data
def saveFile(data):
save_path = 'E:\PythonProject/reptile.html'
f_obj = open(save_path, 'wb') # wb 表示打开方式,也可用w
f_obj.write(data)
f_obj.close()

saveFile(soup.encode('utf-8'))  # 对soup进行了编码处理!!!
这里对soup进行了编码处理,因为我们当前是用wb进行打开的,所以不进行编码处理通不过编译;

如果我们使用w打开文件,那么soup.text是可以写入的,但是会出现乱码现象,这是因为soup无编码!!!

3.w方式写入文件

# saveFile:将数据保存为文件
# @param data
def saveFile(data):
save_path = 'E:\PythonProject/reptile.html'
f_obj = open(save_path, 'w') # w 表示打开方式,也可用wb
f_obj.write(data)
f_obj.close()

saveFile(soup.text)  # 无编码处理


问题

如果你出现了如下问题,

UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 21475: illegal multibyte sequence


这是文件的编码问题,解决方法如下

f_obj = open(save_path, 'w', encoding="utf-8") # 打开文件时将文件编码设置为utf-8(或者其他...)


好了,解决了上述问题后,文件就正常写入了,之后我们打开文件



文件写入成功!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: