[Bash] Open dir rip-script

Pagina: 1
Acties:

  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 08-02 01:57
Ik ben bezig met een script te maken op een open dir te rippen (ben vast het wiel opnieuw aan het uitvinden, maar ik heb nog geen alternatief gevonden :P)
Afijn, hier volgt wat (ranzige code):

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
DIRTELLER=0
PICTELLER=0
NRDIRS=155
NRPICS=100
SITE=http://vulsitein.com/dir

if !test -d ./output mkdir output
cd output

while $DIRTELLER < $NRDIRS :
  do
   if !test -d ./$DIRTELLER
    then
      mkdir $DIRTELLER
   fi
   while $PICTELLER < $NRPICS :
     do
      echo $SITE/$DIRTELLER/$PICTELLER.jpg
     done
   PICTELLER='expr $PICTELLER + 1'
  done
DIRTELLER='expr $DIRTELLER + 1'


zoals je ziet moet het programma gewoon bruutweg server request sturen oplopend in nummer en een directory van dat nummer aanmaken in de output dir(en als deze nog niet bestaan deze aanmaken).
So far so good, het is allemaal wat roestig en een boek unix-scripts erbij toch al een eindje gekomen, alleen krijg ik elke keer de error melding "Unexpected end of file op de laatste regel 1 extra buiten het bestand lang is.
Ik verwacht dat het ergens in de loop zit, maar ik kan het niet vinden.
Do's mag je toch gewoon nesten ?
C&C welkom.

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02-2025
wget -r <url>

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 08-02 01:57
Daar had ik dus ook al zelf aan gedacht, maar helaas:

HTTP request sent, awaiting response... 403 Forbidden
23:36:40 ERROR 403: Forbidden.

dat werkt dus niet :/ iemand anders een suggestie ?

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Even met de opties van wget spelen, vooral --referer is waarschijnlijk handig (en eventueel ook --user-agent en --load-cookies).

Overigens vind ik een loopje in bash altijd mooier zo:
code:
1
2
3
4
for DIRTELLER in `seq 0 155`
do
    echo Nummer: $DIRTELLER
done
maar er zijn vele manieren om hetzelfde te bereiken, vooral een kwestie van smaak :)

"He took a duck in the face at two hundred and fifty knots."


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 17-12-2025

curry684

left part of the evil twins

Shell- oftewel OS-specific scripting in de relevante fora aub: -> Non-Windows Operating Systems :)

Professionele website nodig?


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:32
Zoals Grijze Vos al opmerkt moet je maar eens gaan spelen met wget en de opties daarvan.

Stel ook een delay in tussen de requests, anders ga je na een tijdje ook wel geweigerd worden denk ik.

  • sjink
  • Registratie: Oktober 2002
  • Laatst online: 03-02-2025
Nibble schreef op 27 juni 2004 @ 23:23:
...(ben vast het wiel opnieuw aan het uitvinden, maar ik heb nog geen alternatief gevonden :P)\...
Ik kan gewoon met Download Accelerator rechtermuisknop en dan "download all" doen, werkt uitstekend hoor ;)

*blup*


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
sjink schreef op 28 juni 2004 @ 08:40:
[...]


Ik kan gewoon met Download Accelerator rechtermuisknop en dan "download all" doen, werkt uitstekend hoor ;)
Ja joh? vind ik knap dat je dat onder linux kan doen ;)

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:32
sjink schreef op 28 juni 2004 @ 08:40:
Ik kan gewoon met Download Accelerator rechtermuisknop en dan "download all" doen, werkt uitstekend hoor ;)
Joy, met of zonder gratis spyware erbij geleverd?

  • Niek
  • Registratie: Februari 2001
  • Laatst online: 11-02 12:26

Niek

f.k.a. The_Surfer

Ik zou er zelf eerder met seq doorheen lopen ipv "expr $var+1". Zelf gebruik ik meestal zoiets:
code:
1
for dir in $(seq 0 155); do mkdir $dir; cd $dir; for pic in $(seq 0 100); do wget http://www.site.com/galleries/$dir/$pic.jpg; done; cd ..; done

BTW, dit zou ik dus alleen gebruiken voor "ClosedDir" ripping, als het een OpenDir(TM) is kan je beter wget -mirror gebruiken.

À vaincre sans péril, on triomphe sans gloire - Pierre Corneille

Pagina: 1