_MysqL_exceptions.Warning: Incorrect string value: '\xE7\xB9\x81\xE9\xAB\x94...' for column 'html' at row 1
def getSource(theurl,moved = 0):
if moved == 1:
theurl = urllib2.urlopen(theurl).geturl()
urlReq = urllib2.Request(theurl)
urlReq.add_header('User-Agent',random.choice(agents))
urlResponse = urllib2.urlopen(urlReq)
htmlSource = urlResponse.read()
return htmlSource
new_u = Url(source_url = source_url,source_url_short = source_url_short,source_url_hash = source_url_hash,html = htmlSource)
new_u.save()
为什么会这样呢?
我基本上是在下载页面的URL …然后使用Django将其保存到数据库中.
它仅在某些情况下发生.
编辑:似乎我必须将数据库设置为UTF-8?这样做的命令是什么?
最佳答案
基本上,您需要确保正确的字符串编码.例如.您提供给django的字符串不是UTF-8编码的,因此某些字符无法解析.
有关如何查找所请求页面的编码的一些有用建议,可以在这里找到:urllib2 read to Unicode