0

HTMLを行に読み取り、関連する行を除外してからそれらの行をhtmlファイルとして保存するPythonスクリプトがあります。文字列として保存されたとき/にページテキストの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各文字列を保存する前に a を実行して問題を回避することは難しくありませんが、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