【问题标题】:How to decode encoded text from a web page如何解码网页中的编码文本
【发布时间】:2019-04-13 08:57:26
【问题描述】:

我有一个学校网站的 API 页面,我想从中解析数据,但页面看起来像这样,我不知道如何使用 python 解码此文本。 (编码的字母是西里尔字母)

来自页面的数据(即使在浏览器中也是这样):

\u0421\u0434\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u0438\u043a\u0443\u043b, 15 \u0430\u043f\u0440\u0435\u043b\u044f.&nbsp;<br />\r\n\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &quot;\u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e&quot; \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0435\u043c &quot;\u043a\u0430\u043a \u0443\u0447\u0438\u043b\u0438&quot;, \u0430 \u043d\u0435 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0431\u044b \u0432\u044b \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0437\u0430 5 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 \u0441\u0434\u0430\u0447\u0435\u0439 \u0434\u0435\u043b\u0430\u043b\u0438. \u041f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u043e\u0440\u0447\u0438\u0432\u043e \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e.

我要获取的数据:

Сдать после каникул, 15 апреля.&nbsp;<br />\r\nУбедительная просьба оформлять решение &quot;как положено&quot; в соответствии с тем &quot;как учили&quot;, а не так, будто бы вы его на коленке за 5 минут перед сдачей делали. Писать разборчиво и аккуратно.

【问题讨论】:

    标签: python-3.x encoding


    【解决方案1】:

    由@APIuz 团队准备

    #For python3
    
    import json
    import io
    text = '\u0421\u0434\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u0438\u043a\u0443\u043b, 15 \u0430\u043f\u0440\u0435\u043b\u044f.&nbsp;<br />\r\n\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &quot;\u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e&quot; \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0435\u043c &quot;\u043a\u0430\u043a \u0443\u0447\u0438\u043b\u0438&quot;, \u0430 \u043d\u0435 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0431\u044b \u0432\u044b \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0437\u0430 5 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 \u0441\u0434\u0430\u0447\u0435\u0439 \u0434\u0435\u043b\u0430\u043b\u0438. \u041f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u043e\u0440\u0447\u0438\u0432\u043e \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e.'
    
    io.open("APIuz.txt", "w", encoding="utf-8").write(json.dumps(text, ensure_ascii=False))
    print(open("APIuz.txt", "r").read())
    
    #For python2
    
    print(repr(u'\u0421\u0434\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u0438\u043a\u0443\u043b, 15 \u0430\u043f\u0440\u0435\u043b\u044f.&nbsp;<br />\r\n\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0441\u044c\u0431\u0430 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &quot;\u043a\u0430\u043a \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e&quot; \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0435\u043c &quot;\u043a\u0430\u043a \u0443\u0447\u0438\u043b\u0438&quot;, \u0430 \u043d\u0435 \u0442\u0430\u043a, \u0431\u0443\u0434\u0442\u043e \u0431\u044b \u0432\u044b \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0437\u0430 5 \u043c\u0438\u043d\u0443\u0442 \u043f\u0435\u0440\u0435\u0434 \u0441\u0434\u0430\u0447\u0435\u0439 \u0434\u0435\u043b\u0430\u043b\u0438. \u041f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0437\u0431\u043e\u0440\u0447\u0438\u0432\u043e \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e.').decode('unicode-escape'))
    
    #The code is just what you think
    
    #>>> u'Сдать после каникул, 15 апреля.&nbsp;<br /> Убедительная просьба оформлять решение &quot;как положено&quot; в соответствии с тем &quot;как учили&quot;, а не так, будто бы вы его на коленке за 5 минутперед сдачей делали. Писать разборчиво и аккуратно.'
    

    【讨论】:

      【解决方案2】:

      在我的情况下最简单的解决方案:

      some_string.encode('utf-8').decode()
      

      【讨论】:

        猜你喜欢
        • 2015-04-28
        • 1970-01-01
        • 1970-01-01
        • 2016-08-10
        • 1970-01-01
        • 2010-09-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多