最近在进行网络爬虫时,被中文的编码问题搞得很头疼,特别是在windows环境下。
1.爬取到的中文网页内容,在解析时出现解析错误
一般情况下,我们都是用urllib中的相关函数,进行web页面的爬取,然后进行相关处理。
但是经常在处理中文web时,对文本内容的处理,经常出现一些编码错误。
为了彻底解决这个问题,一般是先编码再解码,但是还是会儿出现一些问题……
后来,我的解决办法:
使用requests库,很好地支持非英文字符。
import requests
response = requests.get(url)
response.encoding = 'utf-8' #显示地制定网页编码,一般情况下可以不用
html = response.text #html的内容都是用utf-8的编码规则编码的
bsobj = BeautifulSoup(html, 'html.parser')
2.中文编码输出到文件中
只需在打开文件时,传入相应的关键字参数即可
fileobj = open(file,'w',encoding='utf-8')
其它流程不变