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

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(或者其他...)


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



文件写入成功!!!



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页