【Python】beautifusoup解析HTML並將資料寫入檔案
阿新 • • 發佈:2019-02-09
Python版本:3.6
IDE:PyCharm
1.解析HTML(這裡以www.baidu.com為例)
2.wb方式寫入檔案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')
# 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(或者其他...)
好了,解決了上述問題後,檔案就正常寫入了,之後我們開啟檔案
檔案寫入成功!!!