![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!! |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| To Break gegevens van HTML | phip | Programmeren en Shell Scripting | 1 | 05-20-2008 04:23 |
| Het omzetten van HTML-gegevens in een spreadsheet | garric | Programmeren en Shell Scripting | 4 | 04-22-2008 11:00 |
| Hoe kan ik het uittreksel alleen tekst uit html bestand zonder HTML-tag | los111 | UNIX voor Dummies Questions & Answers | 4 | 11-28-2007 04:40 |
| coverting html gegevens tekst in "c" | phani_sree | Hoog Niveau Programmering | 3 | 10-18-2007 11:06 |
| Het omzetten van tabellen van rij gegevens in kolommen van de tabellen | justthisguy | Programmeren en Shell Scripting | 7 | 07-16-2007 05:42 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
extraheren van gegevens uit html tabellen
hoi
Ik moet voor het gebruik van Unix te extraheren van gegevens uit verschillende rijen van een tabel gecodeerd in html. Ik weet dat de rijen in een tabel zijn de tags <tr> </ tr> en dus ik dacht dat mijn eerste stap moet zijn om alle van de andere html-code die niet binnen deze tags. Ik kan vervolgens gebruik maken van deze methode toe, maar verwijder alles wat niet in <td> </ td> tags. maar de grote vraag is hoe kan ik dit doen? Ik denk dat ik moet sed maar op dit moment is het alleen maar verwarrend me te veel any help? |
|
||||
|
In principe heb je gelijk. Het volgende script zal uitpakken alles tussen een "<tr>" en "</ tr>" tag. Het zal ervan uitgaan dat er geen meerdere "<tr> - </ tr>"-paren op een enkele lijn en de codes zelf zijn allemaal kleine letters (geen "<TR>"). Het resultaat is misschien niet wat u nodig heeft, maar, dus je zou kunnen overwegen om ons een voorbeeld van wat je hebt en wat je nodig hebt om van het. Dit zou ons helpen om u te helpen beter. Code:
sed 's/.*<tr>//;s/<\/tr>.*//' /path/to/your/file Ik hoop dat dit helpt. bakunin |
|
|||||
|
Hoi.
Zien HTML-tabel naar CSV voor een andere aanpak met behulp van lynx-dump. In het algemeen, links naar threads vergelijkbaar met de jouwe zijn geplaatst op de bodem van de draad ... cheers, DRL |
|
||||
|
dankzij bakunin dat is echt nuttig. i cant post een steekproef van de html-pagina voor verschillende redenen. het enige probleem met uw oplossing is dat de meeste van de <tr> tags worden op meerdere lijnen in mijn html-pagina. dwz de tag kan worden geopend op lijn 7 en vervolgens gesloten op lijn 20. dus is het mogelijk met sed het verwijderen van alles op een lijn (met inbegrip van de lijn), MAAR stoppen wanneer het wordt op een tag <tr> en opnieuw te beginnen wanneer het gaat om een </ tr>? Als alternatief is er een manier om sed geloven dat de hele html-pagina wordt op een lijn?
zoals ik ben niet bekend met de mogelijkheden van sedHet maakt het moeilijk voor mij om te weten wat de beste manier voor de voltooiing van deze taak is. |
|
||||
|
Citaat:
Als je iets post, iemand zal postcode. Anders, you're going to have to do it jezelf. Probeer iets als vervanging van alle nieuwe regels in het bestand met spaties, splitsing van het dossier voor elke <of na elke> en gaan vanaf daar. Als u een <of> in de gegevens, dan ben je gaan doen, een beetje extra werk. Dat is het beste wat ik voor u kan doen op dit moment. ShawnMilo |
|
||||
|
proberen te beantwoorden mijn vraag hier, maar im nog worstelen Als dit werkt, dan doesnt i will mock-up een voorbeeld, ik dacht dat mijn beschrijving zijn goed genoeg withough hoeft te tijd om een voorbeeld tabel. Ik vond op deze site Sed - An Introduction en Tutorial dat u kunt bereiken door patronen. het voorbeeld is: Code:
sed '/start/,/stop/ s/#.*//' Ik heb geprobeerd om <tr> mijn begin en </ tr> mijn stoppen maar ik bleef steeds fouten. Verder zou ik NIET (!) is dit dus in plaats van alles in het verwijderen van de tags, het verwijdert alles buiten de tags. kan iemand me alsjeblieft helpen om dit sed opdracht werken? bedankt Laatst gewijzigd door Streetrcr; op 03.20.2008 04:05.. Reden: code tags |
|
||||
|
Citaat:
Code:
sed -n '/<tr>/,/<\/tr> {
s/.*<tr>//
s/<\/tr>.*//
p
}' /path/to/your/file
Hoe dit werkt: de "-n"-clausule zal stoppen sed van drukkerijen elke regel heeft gelezen, dus als u het script zou print gewoon niets. Dit is om (impliciet) gooit alle lijnen die niet in het opgegeven bereik. Alles wat tussen de accolades wordt uitgevoerd wanneer binnen de range die op lijn 1. Zoals u kunt zien dat de laatste opdracht binnen de accolades, is een "P", die zal drukken alles binnen dit bereik. Als u de twee 's /...."- commando zou iets weten: Code:
something....<tr> content of the tr-tag some more content even more content</tr> something else.... Zoals je kunt zien de vetgedrukte delen moeten worden geschrapt omdat ze geen deel uitmaken van wat je wilt. De twee 's /..."- commando (s \u003d vervangende) zorg voor dat samen met de tags zelf. Eindelijk de p (rint)-commando output het resultaat van alle trimmen. Nog een woord, maar: Je hebt een tweede antwoord van mij omdat ik op prijs gesteld dat u aan het doen waren echt onderzoek op uw eigen. U bijna verbeurd dit antwoord, omdat dit: Citaat:
Ik ben zelfs nu "verspillen wat meer tijd" uit te leggen waarom je soms geen antwoord op alle of een antwoord dat je niet kunt gebruiken. Ga figuur. Ik hoop dat dit helpt. bakunin |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|