【问题标题】:Japanese and Korean characters support Pyhthon日韩字符支持 Python
【发布时间】:2022-01-07 01:18:30
【问题描述】:

网页抓取时我在 pyhton 中遇到字符错误。

from requests_html import HTML

with open('list.html', 'r', encoding='cp932', errors='ignore') as html_file:
    source = html_file.read()
    html = HTML(html=source)

video_link = html.find('a', first=True).text
print(video_link)

它在 html 中打开的行是这样的

<dt><a href="https://www.youtube.com/watch?v=OAJn4XRhr10">
(15) アイナ・ジ・エンド (BiSH) / きえないで [OFFiCiAL ViDEO] - YouTube</a>

我得到的输出:

(15) �A�C�i�E�W�E�G���h (BiSH) / �����Ȃ��� [OFFiCiAL ViDEO] - YouTube

我想要的输出:

(15) アイナ・ジ・エンド (BiSH) / きえないで [OFFiCiAL ViDEO] - YouTube

列表 html:

<!DOCTYPE netscape-bookmark-file-1>
<html><link rel="stylesheet" href="styling.css"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Reading List</title>
</head><body><h1>Reading List</h1>
    <dl><p>
        </p><dt><dt><a href="https://www.youtube.com/watch?v=OAJn4XRhr10">
(15) アイナ・ジ・エンド (BiSH) / きえないで [OFFiCiAL ViDEO] - YouTube</a></dt>

将 python 文件的编码设置为 UTF-8 会使输出变得最坏。 (在python文件中编码UTF-8,在html文件中编码字符集UTF-8)

将字符集设置为 cp932 并将 python 文件中的编码设置为 cp932 会使输出变得最糟糕。

Windows PowerShell

Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

import sys

sys.getdefaultencoding()

'utf-8'

我有显示字符的字体

以字节模式打开它会改变最坏的输出

【问题讨论】:

  • 请分享文件。在问题中发布它的内容是不一样的

标签: python html web-scraping encoding cjk


【解决方案1】:

您可以使用字符集检测库来自动检测文件编码。例如chardet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2018-09-17
    • 2017-08-22
    相关资源
    最近更新 更多