Ich habe den folgenden Code zum Parsen einiger HTML. Ich muss die Ausgabe (HTML-Ergebnis) als eine einzige Codezeile mit den escaped Zeichenfolgen dort wie \n
speichern, aber ich erhalte entweder eine Darstellung, die ich von repr()
wegen der einfachen Anführungszeichen nicht verwenden kann, oder die Ausgabe ist wie so (Interpretieren der Escape-Sequenzen) auf mehrere Zeilen geschrieben:Keep n in Zeichenfolge Inhalt und in eine Zeile schreiben
<section class="prog__container">
<span class="prog__sub">Title</span>
<p>PEP 336 - Make None Callable</p>
<span class="prog__sub">Description</span>
<p>
<p>
<code>
None
</code>
should be a callable object that when called with any
arguments has no side effect and returns
<code>
None
</code>
.
</p>
</p>
</section>
Was benötige ich (einschließlich der Escape-Sequenzen):
<section class="prog__container">\n <span class="prog__sub">Title</span>\n <p>PEP 336 - Make None Callable</p>\n <span class="prog__sub">Description</span>\n <p>\n <p>\n <code>\n None\n </code>\n should be a callable object that when called with any\n arguments has no side effect and returns\n <code>\n None\n </code>\n .\n </p>\n </p>\n </section>
My-Code
soup = BeautifulSoup(html, "html.parser")
for match in soup.findAll(['div']):
match.unwrap()
for match in soup.findAll(['a']):
match.unwrap()
html = soup.contents[0]
html = str(html)
html = html.splitlines(True)
html = " ".join(html)
html = re.sub(re.compile("\n"), "\\n", html)
html = repl(html) # my current solution works, but unusable
Das obige ist meine Lösung, aber eine Objektdarstellung ist nicht gut, ich brauche die String-Darstellung. Wie kann ich das erreichen?
Das funktioniert. Akzeptiert für die einfachste Lösung – lkdjf0293