python - 爬蟲內容保存成文本文件 編碼問題
問題描述
測試一個非常簡單的爬蟲,把一個非常簡約風格的網頁的文本內容保存到本地的電腦上。最后出現錯誤:
UnicodeEncodeErrorTraceback (most recent call last)<ipython-input-35-ead5570b2e15> in <module>() 7 filename=str(i)+’.txt’ 8 with open(filename,’w’)as f:----> 9 f.write(content) 10 print(’當前小說第{}章已經下載完成’.format(i)) 11 f.close()UnicodeEncodeError: ’gbk’ codec can’t encode character ’xa0’ in position 7: illegal multibyte sequence
代碼如下:
In [1]: import requestsIn [2]: from bs4 import BeautifulSoupIn [3]: re=requests.get(’http://www.qu.la/book/168/’)In [4]: html=re.textIn [5]: soup=BeautifulSoup(html,’html.parser’)In [6]: list=soup.find(id='list')In [9]: link_list=list.find_all(’a’)In [14]: mylist=[] ...: for link in link_list: ...: mylist.append(’http://www.qu.la’+link.get(’href’)) ...: ...:#遍歷每個鏈接,下載文本內容到 本地文本文件i=0 ...: for url in mylist1: ...: re1=requests.get(url) ...: html2=re1.text ...: soup=BeautifulSoup(html2,'html.parser') ...: content=soup.find(id='content').text.replace(’chaptererror();’, ’’) ...: filename=str(i)+’.txt’ ...: with open(filename,’w’)as f: ...: f.write(content) ...: print(’當前小說第{}章已經下載完成’.format(i)) ...: f.close() ...: i=i+1
問題解答
回答1:f.write(content.encode(’utf-8’))
或者
import codecswith codecs.open(filename, ’w’, ’utf-8’) as f: f.write(content)
相關文章:
1. javascript - h5 video層級太高導致浮在div上面,如何解決?2. angular.js - angular 2 應用如何進行打包?如何使用gulp打包?3. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?4. cordova - myeclipse2014 導入android項目報錯5. javascript - 圖片無法正常加載6. python中怎么對列表以區間進行統計?7. java - Spring Mvc全局異常處理器@ControllerAdvice不起作用?8. javascript - Ajax加載Json時,移動端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?9. mysql ER_BAD_DB_ERROR: Unknown database ’test’10. mysql - 記得以前在哪里看過一個估算時間的網站
