Thread: Sed (UNIX) Frage
Eröffnet am: 24.06.2015 16:06 Letzte Reaktion: 04.07.2015 12:55 Beiträge: 5 Status: Offen |
Unterforen: - Computer & Technik |
|
Verfasser | Betreff | Datum | |||
---|---|---|---|---|---|
| |||||
DarkSnow | Sed (UNIX) Frage | 24.06.2015, 16:06 | |||
Scales | Sed (UNIX) Frage | 24.06.2015, 22:18 | |||
DarkSnow | Sed (UNIX) Frage | 26.06.2015, 15:16 | |||
damocles | Sed (UNIX) Frage | 30.06.2015, 11:53 | |||
Vernochan | Sed (UNIX) Frage | 04.07.2015, 12:55 | |||
|
|
||||||
Hallo zusammen, da ich mit der Suchfunktion leider nicht fündig wurde, habe ich mal einen neuen Thread eröffnet. Ich habe noch nicht so viel Übung in Unix und hoffe nun hier einen Rat zu bekommen. Ich versuche gerade mir aus Unix-Kommandos einen kleinen webcrawler basteln. Meine bisherigen Bemühungen haben auch funktioniert (beziehungsweise ich konnte immer eine Lösung finden), aber nun harkt es leider. Ich habe den html-Code bereits in eine Datei geschrieben und den weiterführenden Link identifiziert, sowie die Zeile in der er steht herausgefischt. Nun wollte ich mit sed den übrigen Zeileninhalt löschen, doch das funktioniert leider nicht. Das Muster, dass den entsprechenden Link identifisiert, habe ich, wie gesagt bereits(als regulären Ausdruck) und wollte nun das ganze Ding gern verneinen, so dass alles, was nicht ins Muster passt, durch nichts ersetzt wird. Würde mich freuen, wenn jemand helfen könnte. |
|
||||||
Evtl. kannst du einfach grep nehmen. Mit -o Option gibt es nur den Text aus, der durch den regulären Ausdruck gematched wurde. Ich bin mir aber nicht sicher ob ich dein Problem ganz verstanden hab. |
|
||||||
Vielen Dank für die schnelle Antwort. An die Option -o hatte ich überhaupt nicht mehr gedacht! Ich habe es gerade nochmal ausprobiert und es sieht wesentlich besser aus, als die bisherigen Ergebnisse. |
|
|||||||
Ich würde für einen web-crawler ohnehin keine shell-Scripte benutzen.. das ist irgendwie von hinten durch die Brust ins Auge. Dafür eignet sich ne Scriptsprache wie ruby definitiv besser, insbesondere mit der Library Nokogiri. Es ist halt doch deutlich angenehmer, n CSS-Selektor drauf abzufeuern und das parsen ner dafür ausgelegten Library zu überlassen, anstatt das Rad neu zu erfinden und regular expressions für sed zu basteln, die mit allen Sonderfällen von Links im Seitenquellcode mit Zeilenumbrüchen, Tabs/Leerzeichen, langen Attributsketten (class, style, onclick, etc. pp.) und ähnlichem klarkommen. Da liest sich sowas dann irgendwie hübscher: #!/usr/bin/env ruby require 'rubygems' require 'nokogiri' require 'httpclient' httpc = HTTPClient.new html = httpc.get_content('http://animexx.onlinewelten.com') page = Nokogiri::HTML( html ) page.css('a').each do |link| puts link['href'] end Edit: irgendwie ist der CODE-tag kaputt ^^ hier sieht's gescheit aus. スど -ぃ |
|||||||
Zuletzt geändert: 30.06.2015 12:11:34 |
|
|||||||
Andererseits ist es als bash script schon deutlich mehr... linux'esque.... :D Aber ich denke auch, dass ruby (oder andere Sprachen) da besser geeignet sind. ------------------------------------------ Diese Signatur ist ein wenig aus der Mode gekommen. Daher wurde sie durch DIESE aktuelle Signatur ersetzt. |