[*NIX/BSD] Grep & save alle links uit HTML

Pagina: 1
Acties:

  • PjotrP
  • Registratie: Augustus 2001
  • Laatst online: 15-05 08:28
Ik heb een berg HTML documenten van waaruit gelinkt wordt naar honderden PDF documenten:
bash-2.05a$ more test.html | grep "<A HREF=\"n"
<TD><FONT SIZE=-1><A HREF="n9810418.pdf">English</A></FONT></TD>
<TD><FONT SIZE=-1><A HREF="n9810223.pdf">English</A></FONT></TD>
<TD><FONT SIZE=-1><A HREF="n9814411.pdf">English</A></FONT></TD>
<TD><FONT SIZE=-1><A HREF="n9810229.pdf">English</A></FONT></TD>
<TD><FONT SIZE=-1><A HREF="n9813136.pdf">English</A></FONT></TD>
etc.

De links krijg ik wel, maar op welke manier kan ik de links automatisch pipen naar een programma als curl?

Zonnepaneel installateur


  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 19-05 22:40

odysseus

Debian GNU/Linux Sid

code:
1
2
3
4
5
6
7
#!/usr/bin/perl
while (<>)
{
  $_ =~ s/^.*HREF=\"//;
  $_ =~ s/\".*$//;
  print;
}

Vervolgens kun je die dingen in een lijst naar curl sturen of ze één voor één verwerken (middels 'for i in `cat mijn_html_bestand | ./script.pl`; do curl $i; done')

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Ik denk dat jij zoiets wilt:

code:
1
2
3
4
for regel in `cat test.html | grep "<HREF=\"n" |cut -f2 -d\" ` 
do
curl  www.url.nl/$regel
done


Hiermee gooi je de uitvoer van het cat / grep / cut (het cut gedeelte knipt
het 2e veld (-f2) als je " als delimiter gebruikt (-d\" ) in dit geval
alleen de naam van de pdf in de variabele regel, elke keer een nieuwe regel,
en gebruikt die in het curl regeltje.

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • PjotrP
  • Registratie: Augustus 2001
  • Laatst online: 15-05 08:28
Dank jullie allebei . Ik ben een stuk verder en heb het al bijna werkend :)

Zonnepaneel installateur