编码错误Python3.5

时间:2016-10-17 18:50:36

标签: python-3.x beautifulsoup

所以我在Python3.5中遇到一个奇怪的编码错误,我正在读一个包含html-data的字符串,我正在处理这样的字符串:

def parseHtml(self,url):
        r  = requests.get(self.makeUrl())
        data = r.text.encode('utf-8').decode('ascii', 'ignore')
        self.soup = BeautifulSoup(data,'lxml')

当我尝试打印以下内容时发生错误:

def extractTable(self):
        table = self.soup.findAll("table", { "class" : "messageTable" })
        print(table)

我已经检查了我的语言环境,并尝试了各种各样的编码/解码变体,如之前在SO上的类似帖子所述。最奇怪的是(对我而言)该脚本可以在另一台机器和笔记本电脑上完美运行。但是在我的Windows机器上(使用cygwin到远程服务器)和我的Ubuntu安装它根本就不会运行并给我:

UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 1273: ordinal not in range(128)

1 个答案:

答案 0 :(得分:0)

好的,所以我将文件从远程服务器移动到我的本地机器,它完美地执行了。然后我检查了我的sys.stdout.encoding:

<!--HTML-->
<div class="popup">
  <div class="popupWindow">
    <div class="popup_txt">
      <div class="row">
        <center>
          <img src="images/logo.png" class="img-responsive" width="400px">
        </center>
      </div>
      <hr style="border-top: 1px solid #000;">
      <div class="row">
        <h2>Where You Born Before</h2>
        <h1 class="text-center"><span id="date"></span>?</h1>

        <div class="popup_img answer">
          <button class="popup_img_yes btn btn-primary btn-lg">Yes</button>
          <button class="popup_img_no btn btn-primary btn-lg">No</button>
        </div>
      </div>
    </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://github.com/js-cookie/js-cookie/blob/master/src/js.cookie.js"></script>

显然出现了问题,所以我最终导出:

>>> import sys
>>> sys.stdout.encoding
'ANSI_X3.4-1968'

和voìla!

相关问题