Ich habe externe HTML-Site und ich muss Daten aus der Tabelle auf dieser Website extrahieren. Allerdings Quelle der HTML-Webseite hat falsche Formatierung außer der Tabelle im Code, so kann ich nichtTeil des Codes extrahieren und HTML in BASH analysieren
xmllint --html --xpath <xpath> <file>
verwenden, weil es nicht richtig funktioniert, wenn HTML-Formatierung auf der Website ist gebrochen.
Meine Idee war es, curl und löschen Sie den Code über und unter der Tabelle. Wenn die Tabelle extrahiert wird, ist der Code sauber und passt zu xmllint Werkzeug (ich kann Xpath dann verwenden). Allerdings löschen Sie alles über dem Spiel ist schwierig für die Shell, wie Sie hier sehen können: Sed doesn't backtrack: once it's processed a line, it's done. Gibt es eine Möglichkeit, nur den Code der Tabelle aus der HTML-Site in bash extrahieren? Supose, Code hat diese Struktur.
<html>
<head>
</head>
<body>
<p>Lorem ipsum ....</p>
<table class="my-table">
<tr>
<th>Company</th>
<th>Contact</th>
</tr>
</table>
<p>... dolor.</p>
</body>
</html>
Und ich brauche eine Ausgabe wie diese Daten richtig zu analysieren:
<table class="my-table">
<tr>
<th>Company</th>
<th>Contact</th>
</tr>
</table>
Bitte, gib mir nicht minus wegen versuchen, bash zu verwenden.
Sie extrahieren können diesen Artikel überprüfen: http://www.joyofdata.de/blog/using-linux-shell-web-scraping/ – Hackerman
Haben Sie versucht, den HTML-Code mit HTML-Tidy http://www.html-tidy.org/ –
zu reinigen Ich habe es versucht " tidy -ashtml page.html -output page2.html "aber leider gibt es" Dieses Dokument hat Fehler, die behoben werden müssen, bevor HTML Tidy verwendet wird, um eine aufbereitete Version zu erstellen. " Es muss vollautomatisch sein. Trotzdem [email protected] Dan-Dev –