Grote hoeveelheid webpagina's downloaden

Status
Niet open voor verdere reacties.

toetsenbord

Gebruiker
Lid geworden
13 dec 2010
Berichten
158
Beste forumleden

Ik zou graag een groot aantal website downloaden (zoals je kan doen met IE -> pagina > opslaan > HTML (de afbeeldingen, scripts etc. hoeven er niet bij).
Aangezien het immens veel werk zou zijn om op deze manier al de pagina's op te slaan, ben ik op zoek naar een manier om deze automatisch op 1 locatie op te slaan.

Bv. eerst alle URL's geven, waarna deze allemaal gedownload worden (als .htm(l) bestand) op één bepaalde locatie.

Ik zet dit bericht hier, omdat ik denk dat dit met java kan, anders mag dit verplaatst worden.
 
Gaat het om meerdere losse pagina's
of gaat het om hele websites?

Om een hele website (alle pagina's van één site) te downloaden is er wel een handig programma
Dat heet HTTrack. http://www.httrack.com/
 
Het gaat (helaas) om meerde losse pagina's.

Bestaat er misschien een of andere code dat de url's één voor één opent in IE, en deze allemaal (automatisch en één voor één) opslaat (zoals met pagina > opslaan) en daarna IE terug sluit?
 
Als je geen bezwaar hebt tegen een DOS-programma kan je eens kijken naar wget for Windows. Daarmee kan je met het commando
Code:
wget url1 url2 url3 etc
url1, url2, url3, etc. downloaden (bij de Linux-versie van wget werkt dat i.i.g., ik neem aan dat dat bij de Windows-versie ook werkt).
 
Helaas werkt dit niet, mogelijk omdat de extensie van de pagina niet .html is. Bovendien is er ook dynamically loaded content op de site (=javasript?). Als ik via IE de site download zoals eerder beschreven, lukt het perfect. Ik zoek dus eigenlijk iets waarmee de pagina's eerst worden geladen, en daarna worden opgeslagen, en dat automatisch (meer dan 2000 pagina's...)
 
Ik begin me zo ngzamerhand wel af te vragen wat het doel is van deze aktie.
Opslaan van meer dan 2000 pginas en dan alleen de htmlcode?

Als we weten waar het echt om gaat, is er misschien een andere oplossing?
 
Het mag ook met html code zijn. Ik bedoelde eigenlijk 200 ipv 2000. Ik denk niet dat er een andere mogelijkheid is.
 
Laatst bewerkt:
Moet het met java? Met Perl is het veel sneller en gemakkelijker te doen.

Zet de code hieronder in een loopje en doorloop een array met de site urls.

Het is met Perl ook eenvoudig om een output te geven in een bestand.
Code:
#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request;


my $raw_url = "http://www.helpmij.nl";
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new( GET => $raw_url );
my $res = $ua->request($req);
my $src = $res->content(); 

print $src, "\n";
 
Slaat deze de webpagina's dan op als HTML?
Het hoeft idd helemaal niet met java. Helaas snap ik niet echt hoe ik dit moet doen. Ik heb Padre gedownload en daar het script gezet, maar ik kan het niet uitvoeren. Moet ik iets anders doen of downloaden voor het script?
 
Ja je krijgt de source van de pagina. Zoals je doet in internet explorer. Ik heb dit met Ubuntu geprobeerd. Programma is aan te roepen met:
Perl program.pl

Program.pl moet dan je programma zijn.
In Windows heb ik nooit met perl gewerkt dus kan ik niet zeggen hoe het daar werkt.
 
Vraag:
Als het om dynamische content gaat (verzorgd door javascript/AJAX), dan heb je niets aan de broncode alleen. Dan zou je de gegenereerde broncode moeten hebben (= incl. de resultaten van het javascript).
Doet perl dat ook?

@tecsman: tipje van de sluier. ;)
 
Nee je krijgt de informatie alleen de broncode, dus met stukken javascriptcode. Dan zou er nog een HTML/javascript/AJAX parser moeten worden gebruikt.
 
Beste forumleden

Ik zou graag een groot aantal website downloaden (zoals je kan doen met IE -> pagina > opslaan > HTML (de afbeeldingen, scripts etc. hoeven er niet bij).
Aangezien het immens veel werk zou zijn om op deze manier al de pagina's op te slaan, ben ik op zoek naar een manier om deze automatisch op 1 locatie op te slaan.

Bv. eerst alle URL's geven, waarna deze allemaal gedownload worden (als .htm(l) bestand) op één bepaalde locatie.

Ik zet dit bericht hier, omdat ik denk dat dit met java kan, anders mag dit verplaatst worden.

refrentie:http://nadeausoftware.com/node/73
Code:
final java.net.URL url = new java.net.URL( urlString );
        final java.net.URLConnection uconn = url.openConnection( );
        if ( !(uconn instanceof java.net.HttpURLConnection) )
            throw new java.lang.IllegalArgumentException(
                "URL protocol must be HTTP." );
        final java.net.HttpURLConnection conn =
            (java.net.HttpURLConnection)uconn;

met php http://php.net/manual/en/book.curl.php
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan