Puncte:0

wget nu recurge la canalizarea ieșirii la stdout

drapel jp

Vreau să descarc pagini web recursiv și să conduc rezultatul către un filtru. Eu folosesc:

wget -qm -O- http://mywebsite.com/initialpath.php | ./filtru

Dar wget se oprește descărcarea după prima pagină și așteaptă intrarea în loc să analizeze pagina web și să descarce fișierele legate. Funcționează dacă salvez rezultatul într-un fișier cu -O nume de fișier dar vreau să mă ocup de paginile web din mers cu un filtru.

Cum pot realiza acest lucru?

drapel us
Sunteți sigur că `./filter` nu se blochează aici?
chqrlie avatar
drapel jp
Sunt sigur că... am studiat codul sursă pentru `wget` și am găsit explicația.
Puncte:1
drapel jp

Nu pare posibil să-mi ating obiectivul cu versiunile actuale ale wget.

După ce am studiat codul sursă pentru wget versiunea 1.18, am ajuns la aceste concluzii:

  • wget nu poate recurge dacă nu stochează fișierele descărcate, cel puțin temporar --păianjen.

  • Când a trecut -O nume de fișier, se tot anexează la nume de fișier și repară întregul fișier după fiecare descărcare, încărcându-l complet în memorie (sau maparea acestuia). Acest lucru este foarte greoi și ineficient.

  • Când a trecut -O-, trimite fișierul descărcat către stdout și încearcă să se reîncarce - pentru a căuta mai multe URL-uri de preluat... Ceea ce provoacă stdin să fie citite în acest scop. Acesta este un efect secundar al implementării.

Am scris un patch pentru a adăuga o opțiune de conducte mai sensibilă, bazându-mă pe --păianjen pentru a descărca fișiere html și css pentru operare recursivă și pentru a trimite numai aceste fișiere înainte de a fi eliminate. Voi publica patch-ul când va fi testat și documentat în mod rezonabil.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.