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 - angularJS module之间可以通信吗?2. javascript - 表单提交后,后台直接返回页面,应该如何处理?3. 微信小程序可以用gulp,webpack吗?4. thinkphp5.1学习时遇到session问题5. mysql中的join on查询语句的on能否改为where6. 关于Java引用传递的一个困惑?7. javascript - 为什么!function foo(){}返回false,!function foo(){}()返回true?8. javascript - 小米浏览器中,图片导致fixed定位的元素无法显示9. html - 特殊样式按钮 点击按下去要有凹下和弹起的效果10. java - yuicompressor-maven-plugin 合并可用却不压缩, 哪配置不对?
