UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position

niuxiaolei 2018-02-01 10:16:08
import urllib.request, re, urllib.error
key = '短裙'
key = urllib.request.quote(key)
header = ('User-Agent','Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/58.0')
opener = urllib.request.build_opener() #创建一个opener对象
opener.addheaders = [header] #增加报头
urllib.request.install_opener(opener) #变成全局

for i in range(10):
try:
url = 'https://s.taobao.com/list?spm=a21bo.2017.201867-links-0.13.4183d6fb4IhjMg&q='+key+'&cat=16&style=grid&seller_type=taobao&bcoffset=12&s='+str(i*60)
data = urllib.request.urlopen(url).read().encode('utf-8','ignore').decode('latin1','ignore')
pat = 'pic_url":"//(.*?)"'
imgeurl = re.compile(pat).findall(data)
except urllib.error.URLError as e:
if hasattr(e,'code'):
print(e.code)
if hasattr(e,'reason'):
print(e.reason)
for j in range(len(imgeurl)):
thisimg = imgeurl[j]
thisimgeurl = "http://" + thisimg
file = str(i)+str(j)+'.jpg'
urllib.request.urlretrieve(thisimgeurl,file)

运行后,出现了UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 30: ordinal not in range(256),应该怎么解决


...全文
3073 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
C__study 2019-04-03
  • 打赏
  • 举报
回复
把用户代理值中的...去掉
oyljerry 2018-02-03
  • 打赏
  • 举报
回复
对应错误行字符编码格式处理有问题
虾米馅煎包 2018-02-01
  • 打赏
  • 举报
回复
错误提示很明显啊 UnicodeEncodeError 怎么解决 你自己打印看看你requests回来的是什么数据啊

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧