Zain_L 2021-11-29 23:08 采纳率: 100%
浏览 101
已结题

UnicodeDecodeError:“gbk”编解码器问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
# -*- coding: utf-8 -*-
"""
Tushare社区股票数据抓取
"""

import urllib.request
import re
import pandas as pd
import pymysql
import os

def getHtml(url):
    html = urllib.request.urlopen(url).read()
    html = html.decode('gbk')
    return html

def getStackCode(html):
    s = r'<li><a target="_blank" href="http://quote.eastmoney.com/\S\S(.*?).html">'
    pat = re.compile(s)
    code = pat.findall(html)
    return code

Url = 'http://quote.eastmoney.com/stocklist.html'
filepath = 'C:\\data\\'
code = getStackCode(getHtml(Url))
CodeList = []
for item in code:
    if item[0]=='6':
        CodeList.append(item)
for code in CodeList:
    print('正在获取股票%s数据'%code)
    url = 'http://quotes.money.163.com/service/chddata.html?code=0'+code+\
        '&end=20161231&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP'
    urllib.request.urlretrieve(url, filepath+code+'.csv')
运行结果及报错内容

Traceback (most recent call last):
File "C:/Python/WorkSpace/py_case/股票数据抓取.py", line 30, in
code = getStackCode(getHtml(Url))
File "C:/Python/WorkSpace/py_case/股票数据抓取.py", line 17, in getHtml
html = html.decode('gbk')
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 139: illegal multibyte sequence

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月8日
  • 已采纳回答 11月30日
  • 创建了问题 11月29日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度