Mit curl, grep und sed zum extrahieren von Daten aus HTML
Ich versuche zu lernen, einige terminal-Befehle, und sah einen, der packt die links von den neuesten Google-doodle und kopiert es in die Zwischenablage zu kopieren:
$ curl http://www.google.com/doodles#oodles/archive |
grep -A5 'latest-doodle on' | grep 'img src' |
sed s/.*'<img src="\/\/'/''/ | sed s/'" alt=".*'/''/ | pbcopy
Habe ich versucht, etwas ähnliches zu tun - mit diesem Befehl kopieren sollten das Wort des Tages in Ihre Zwischenablage:
curl "http://www.merriam-webster.com/word-of-the-day/" |
grep -A5 'main_entry_word' | sed s/.*'<strong class="main_entry_word">'/''/ |
sed s/'</\strong>.*'/''/ | pbcopy
Ich bekam eine Fehlermeldung, die sagte:
sed: 1: "s/</\strong>.*//": bad flag in substitute command: '/'
Ich bin mir nicht wirklich sicher, was ich mache, und ich habe versucht einige tutorials auf anderen Webseiten, aber ich kann ' T es herausfinden. Ich denke, das Hauptproblem ist, dass ich nicht verstehe, was die meisten von der " sed " Befehl tut.
Kann mir bitte jemand helfen?
Natürlich haben Sie die Nachricht. Sie verwendet vier ' / ' - Zeichen. Ich empfehle, bricht alles in kleine Stücke und Experimentieren mit dem Zeug ein wenig in einer Zeit. BTW, ich vermute, dass wenn Sie die Reihenfolge der '/' und '\' Sie ll bekommen, was Sie wollen.
InformationsquelleAutor user2397282 | 2014-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
oder
Tatsächlich, es funktioniert genauso gut ohne das 'A0' bit
InformationsquelleAutor Bruce K
Wenn ich verstehe deine Anforderung richtig, Sie möchten, extrahieren Sie den text zwischen
<strong...class="...">
und</strong>
würde ich einzelne grep-speichern Sie Ihregrep|grep|sed|sed...
:verwenden auch
-s
option curl:Ausgabe:
InformationsquelleAutor Kent