我在写一个python的网络爬虫,写入记事本的内容都是乱码如何使写入的数据以utf8或者gb2312的码制写入。
definsert(key,url,src):fname=Util.combine(Request.getFilePath(),"query.xml")rs=Crawl....
def insert(key, url, src):
fname = Util.combine(Request.getFilePath(), "query.xml")
rs = Crawl.parse(fname, src["body"])
if not rs or not rs["data"]:
print(json.dumps({"errmsg": "parse error!", "url": url}, ensure_ascii=False).decode("utf-8"))
else:
doc = {"data": str(Json.dumps(rs["data"][0]))}
if rs["data"][0]["codel"] != "":
kdb.insert("query", key, doc)
f = open(r'd:/abc.txt','a')
f.write('\n' + str(Json.dumps(rs["data"][0])))
f.close()
print(json.dumps(Json.loads(doc["data"]), ensure_ascii=False).decode("utf-8")) 展开
fname = Util.combine(Request.getFilePath(), "query.xml")
rs = Crawl.parse(fname, src["body"])
if not rs or not rs["data"]:
print(json.dumps({"errmsg": "parse error!", "url": url}, ensure_ascii=False).decode("utf-8"))
else:
doc = {"data": str(Json.dumps(rs["data"][0]))}
if rs["data"][0]["codel"] != "":
kdb.insert("query", key, doc)
f = open(r'd:/abc.txt','a')
f.write('\n' + str(Json.dumps(rs["data"][0])))
f.close()
print(json.dumps(Json.loads(doc["data"]), ensure_ascii=False).decode("utf-8")) 展开
2个回答
展开全部
我从自己一个utf8的爬虫程序里面摘的。
程序开头:
#!/usr/bin/env python
# -*- coding:utf8 -*-
import urllib
import urllib2
import string
import re
import sys
type0 = sys.getfilesystemencoding() #解决中文乱码问题
后面做抓取程序的时候全部加上decode和encode。
pos1 = text.find(term.decode("utf-8").encode(type0))
在输入到txt的时候相应的分隔符也要decode和encode:
f.write(info+'!'.decode("utf-8").encode(type0))
希望能帮到你。
追问
还是不成报错
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xfd in position 0: invalid start byte
追答
你可能截取的片段不是utf8编码。打个比方我这里有一个utf8的string,编码是abcdefg,这个string的名字是s, 那么s确实是个utf8编码,可以被解读,但是s[0:2]程序就不能被程序理解为utf8了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
八爪鱼采集器是一款功能全面、操作简单、适用范围广泛的互联网数据采集器。如果您需要采集数据,八爪鱼采集器可以为您提供智能识别和灵活的自定义采集规则设置,帮助您快速获取所需的数据。了解更多八爪鱼采集器的功能与合作案例,请前往官网了解更多详情
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询