如果我建立一个准系统,它的工作效果很好。但在我的实际代码中,我收到了与Unicode相关的错误。
temp_url =“http://search.jd.com/Search?keyword=”+ quote(self.keywords)
文件“/usr/lib/python3.5/urllib/parse.py”,第706行,引用 string = string.encode(encoding,errors)
UnicodeEncodeError:'utf-8'编解码器无法在位置0编码字符'\ udce8':不允许代理
我正在使用一个参数将我的搜索字符串传递给Scrapy(1.4):
scrapy crawl jdspider -a keywords =“电灯”
,相关代码如下:
# -*- coding: utf-8 -*-
import scrapy, re
from urllib.parse import quote
def __init__(self, keywords=''):
self.keywords = keywords.strip()
temp_url = "http://search.jd.com/Search?keyword=" + quote(self.keywords)
print ( temp_url )
所以打印甚至不会被执行 - 某事。不适用于引用方法。
Python 3.5.2 Scrapy 1.4.0 Kubuntu 16.04
我做错了什么?
答案 0 :(得分:0)
当您使用中文或任何其他语言字符或符号时,这类问题很常见 尝试使用除utf-8之外的任何其他应用程序编码器对字符串进行编码 https://docs.python.org/3/library/codecs.html#standard-encodings
但是,第一个问题是,删除这个字符会使信息变得无用,或者可能在某种程度上没有用处。
如果这不是问题,请尝试删除该字符。 它似乎是字符串中的第一个字符。
使用Try和Except捕获异常
然后
- 删除第一个字符
或更好的
使用for循环检查每个char并删除无法编码的字符。