Vraag Het maken van `wget` slaat de pagina niet op


Ik gebruik de wget programma, maar ik wil niet dat het html-bestand dat ik aan het downloaden ben, wordt opgeslagen. Ik wil dat het wordt weggegooid nadat het is ontvangen. Hoe doe ik dat?


58
2017-10-10 02:05


oorsprong


Ik ben nieuw voor Linux - Zou het /dev/null ding werk? - Ram Rachum
Dus wat is het punt om het dan te downloaden? - Anonymous
@Anonymous Ik ga ervan uit dat ik de server op afstand beklemtoond .. Als je niet om de inhoud geeft. Ik zou waarschijnlijk wel apachebench (ab) gebruiken. - Tom O'Connor


antwoorden:


U kunt de uitvoer van wget omleiden naar / dev / null (of NUL op Windows):

wget http://www.example.com -O /dev/null

Het bestand wordt niet naar de schijf weggeschreven, maar wel gedownload.


76
2017-10-10 03:01



Dit slaat de pagina niet op, maar het stuurt een e-mail naar mij. Is het ook mogelijk om e-mailen uit te schakelen? - trante


Als u het bestand niet wilt opslaan en u de oplossing voor het downloaden van de pagina hebt geaccepteerd /dev/null, Ik veronderstel u wget gebruikt niet om de paginainhoud te krijgen en te analyseren.

Als het echt nodig is om wat actie op afstand te activeren, controleer dan of de pagina bestaat en ga zo maar door. Ik denk dat het beter is om te voorkomen dat de html-hoofdpagina helemaal wordt gedownload.

Spelen met wget opties om alleen datgene op te halen wat u echt nodig hebt, d.w.z. http-headers, aanvraagstatus, enz.

  • in de veronderstelling dat je moet controleren of de pagina in orde is (dat wil zeggen, de geretourneerde status is 200) kun je het volgende doen:

    wget --no-cache --spider http://your.server.tld/your/page.html
    
  • als je server geretourneerde headers wilt ontleden, doe je het volgende:

    wget --no-cache -S http://your.server.tld/your/page.html
    

Zie de wget man pagina voor verdere opties om mee te spelen.
Zien lynx ook als een alternatief voor wget.


29
2017-10-10 06:38



Ik ben in de war. --no-cachein de man-pagina staat dat het ervoor zorgt dat wget "de server op afstand een geschikte richtlijn stuurt ('Pragma: no-cache') om het bestand van de externe service te krijgen" - Gaia
Het zegt tegen de server dat uw klant geen in het cachegeheugen opgeslagen versie van het bestand wil hebben. We willen de allerlaatste release krijgen van de bron waarvoor we vragen - drAlberT


$ wget http://www.somewebsite.com -O foo.html --delete-after


14
2017-10-10 02:16



Hartelijk bedankt. De --delete-after optie is de keuze wanneer u recursief moet downloaden, maar u wilt de daadwerkelijke inhoud verwijderen. - egelev


Als u ook in de console wilt afdrukken, kunt u het volgende doen:

wget -qO- http://www.example.com

12
2018-03-31 18:24



Ik vind deze optie het beste. Het laat me zien wat het krijgt, maar bewaart het niet. De schakelaars zijn specifiek q stille modus, (het voert geen voortgang en andere info uit), en O- (schrijf het opgehaalde document naar console). - Octopus


Een ander alternatief is om een ​​tool zoals te gebruiken curl, die standaard de externe inhoud uitvoert naar stdout in plaats van het in een bestand op te slaan.


7
2017-10-10 03:49





Bekijk de "-spider" optie. Ik gebruik het om ervoor te zorgen dat mijn websites zijn opgestart en stuur me een e-mail als ze dat niet zijn. Dit is een typische invoer uit mijn crontab:

46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi

3
2017-10-10 02:46





Als u een website wilt crawlen met behulp van wget en schijfverloop wilt minimaliseren ...

Voor een * NIX-box en gebruik wget, Stel ik voor om het schrijven naar een bestand over te slaan. Ik merkte dat op mijn Ubuntu 10.04-vak op wget -O /dev/null veroorzaakte wget om downloads na de eerste download af te breken.
Ik heb dat ook opgemerkt wget -O real-file zorgt ervoor dat wget de eigenlijke links op de pagina vergeet. Het staat op een index.html aanwezig zijn op elke pagina. Dergelijke pagina's zijn mogelijk niet altijd aanwezig en wget onthoudt links die eerder zijn gezien.

Voor crawlen zonder naar schijf te schrijven, is het beste dat ik bedacht het volgende

 mkdir /dev/shm/1   
 cd /dev/shm/1
 wget --recursive --relative --no-parent ...

Merk op dat er geen is -O file keuze. wget zal naar de $ PWD-map schrijven. In dit geval is dat een RAM-only tmpfs bestandssysteem. Hier schrijven moet de churn van de schijf overslaan (afhankelijk van de swapspace) EN alle links bijhouden. Dit zou de hele website met succes moeten crawlen.

Naderhand natuurlijk

 rm --recursive --force /dev/shm/1/*

2
2018-04-05 21:05





Gebruik de optie - deleten na, die het bestand verwijdert nadat het is gedownload.

Bewerken: Oeps, ik heb net gemerkt dat dit al is beantwoord.


1
2017-10-10 03:16