0

我有一个 Python 脚本,可以将 html 读入行,然后在将这些行保存为 html 文件之前过滤掉相关行。在我发现页面文本中的 a 在保存为字符串时/被转换为之前,我遇到了一些问题。&#47

我正在解析的源 html 具有以下行:

<h3 style="text-align:left">SYDNEY/KINGSFORD SMITH (YSSY)</h3>

当通过 file.readlines() 时会出现:

<h3 style='text-align:left'>SYDNEY&#47BANKSTOWN (YSBK)</h3>

然后它会绊倒beautifulsoup,因为这会与“&”符号混淆所有后续标签。

我感兴趣的是知道这个替换值“/”是否独立于平台?

在保存每个字符串之前运行之前并不难.replace,避免了现在我在 Windows 上编码和测试的问题,但是如果我在 linux 服务器上部署我的脚本,它仍然可以工作吗?

这是我现在拥有的,在 Windows 下运行时效果很好:

def getHTML(self,html_source):
    with open(html_source, 'r') as file:
        source_lines = file.readlines()
    relevant = False
    relevant_lines = []
    for line in source_lines:
        if "</table>" in line:
            relevant = False
        if self.airport in line:
            relevant = True
        if relevant:
            line = line.replace("&#47", " ")
            relevant_lines.append(line)
    relevant_lines.append("</table>")
    filename = f"{html_source[:-5]}_{self.airport}.html"
    with open(filename, 'w') as file:
        file.writelines(relevant_lines)
    with open(filename, 'r') as file:
        relevant_html = file.read()
    return relevant_html

谁能告诉我,无需安装带有 linux 的虚拟机,这是否可以跨平台工作?我试图寻找这方面的文档,但我能找到的只是关于/在输入字符串时显式转义 a 的方法,没有记录如何处理/或在将源文件读入字符串时读取其他无效字符。

4

1 回答 1

0

到处都应该没问题,这是一个标准。见https://www.w3schools.com/charsets/ref_html_ascii.asp

于 2022-01-04T10:28:45.400 回答