情况介绍
最近需要爬取网页上的内容,并且保存下来,在把抓取到的信息写入文件的时候,会出现乱码,需要做转码等处理,用的是python
解决的思路大概是这样的:
1. requests.get()获取网页的内容
2. 根据网页,获取编码方式
3. 解码后,统一用utf-8的编码写入文件内,因为gbk编码的时候,查看文件均是乱码
代码
import requests
from bs4 import BeautifulSoup
import codecs
#get content
def getContent(url):
r = requests.get(url)
return r.content
#get code set
def getCodeSet(content):
soup = BeautifulSoup(content,'html.parser')
return soup.original_encoding
#write
def writeToFile(content,path,codeSet):
f = codecs.open(path,'w',codeSet)
f.write(content.decode(codeSet).encode('utf-8').decode('utf-8'))
f.close()
if __name__ == '__main__':
content = getContent('http://item.jd.com/1076647290.html')
codeSet = getCodeSet(content)
writeToHtml(content,'test.html',codeSet)