Saya menggunakan wgetprogram ini, tetapi saya ingin tidak menyimpan file html yang saya unduh. Saya ingin itu dibuang setelah diterima. Bagaimana aku melakukan itu?
Ini tidak menyimpan halaman, tetapi mengirim email kepada saya. Mungkinkah menonaktifkan email?
trante
32
Jika Anda tidak ingin menyimpan file, dan Anda telah menerima solusi mengunduh halaman /dev/null, saya kira Anda menggunakan wget untuk tidak mendapatkan dan mem-parsing konten halaman .
Jika kebutuhan Anda yang sebenarnya adalah untuk memicu beberapa tindakan jarak jauh, periksa apakah halaman itu ada dan seterusnya saya pikir akan lebih baik untuk menghindari mengunduh halaman tubuh html sama sekali.
Mainkan dengan wgetopsi untuk mengambil hanya apa yang benar-benar Anda butuhkan, yaitu header http, status permintaan, dll.
dengan asumsi Anda perlu memeriksa halaman itu ok (yaitu, status yang dikembalikan adalah 200) Anda dapat melakukan hal berikut:
Saya bingung. --no-cachedi halaman manual mengatakan itu menyebabkan wget untuk "mengirim direktif remote server yang sesuai ('Pragma: no-cache') untuk mendapatkan file dari layanan remote"
Gaia
Dikatakan kepada server klien Anda tidak ingin versi cache file .. kami ingin mendapatkan rilis terakhir dari sumber daya yang kami minta
Terima kasih banyak. The --delete-afterpilihan adalah pilihan ketika Anda harus men-download secara rekursif tetapi Anda ingin membuang konten yang sebenarnya.
egelev
+1 untuk saya, perintahnya intuitif - sekilas, saya bisa lebih cepat memahami apa yang akan terjadi daripada-O /dev/null
fusion27
15
Jika Anda juga ingin mencetak di konsol hasil yang dapat Anda lakukan:
Saya suka opsi ini yang terbaik. Mari saya lihat apa yang didapat tetapi tidak menyimpannya. Switch adalah qmode khusus yang diam, (tidak menampilkan progres dan info lainnya), dan O-(menulis dokumen yang diambil ke konsol).
Octopus
9
Alternatif lain adalah dengan menggunakan alat seperti curl, yang secara default menampilkan konten jarak jauh stdoutdaripada menyimpannya ke file.
Periksa opsi "-spider". Saya menggunakannya untuk memastikan situs web saya aktif dan mengirimi saya email jika tidak. Ini adalah entri khas dari crontab saya:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Jika Anda perlu merayapi situs web menggunakan wget dan ingin meminimalkan ...
Untuk kotak * NIX dan penggunaannya wget, saya sarankan melompati penulisan ke file. Saya perhatikan pada kotak Ubuntu 10,04 saya yang wget -O /dev/nullmenyebabkan wget untuk membatalkan unduhan setelah unduhan pertama.
Saya juga memperhatikan bahwa wget -O real-filemenyebabkan wget untuk melupakan tautan yang sebenarnya pada halaman. Itu bersikeras index.htmluntuk hadir di setiap halaman. Halaman seperti itu mungkin tidak selalu ada dan wget tidak akan mengingat tautan yang telah dilihat sebelumnya.
Untuk merangkak tanpa menulis ke disk, yang terbaik yang saya hasilkan adalah sebagai berikut
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Perhatikan tidak ada -O fileopsi. wget akan menulis ke direktori $ PWD. Dalam hal ini, itu adalah sistem file tmpfs RAM saja . Menulis di sini harus memintas churn disk (tergantung ruang swap) DAN melacak semua tautan. Ini harus merayapi seluruh situs web dengan sukses.
/dev/null
masalahnya berfungsi?Jawaban:
Anda dapat mengarahkan output wget ke / dev / null (atau NUL di Windows):
File tidak akan ditulis ke disk, tetapi akan diunduh.
sumber
Jika Anda tidak ingin menyimpan file, dan Anda telah menerima solusi mengunduh halaman
/dev/null
, saya kira Anda menggunakan wget untuk tidak mendapatkan dan mem-parsing konten halaman .Jika kebutuhan Anda yang sebenarnya adalah untuk memicu beberapa tindakan jarak jauh, periksa apakah halaman itu ada dan seterusnya saya pikir akan lebih baik untuk menghindari mengunduh halaman tubuh html sama sekali.
Mainkan dengan
wget
opsi untuk mengambil hanya apa yang benar-benar Anda butuhkan, yaitu header http, status permintaan, dll.dengan asumsi Anda perlu memeriksa halaman itu ok (yaitu, status yang dikembalikan adalah 200) Anda dapat melakukan hal berikut:
jika Anda ingin mengurai server kembali header lakukan hal berikut:
Lihat halaman manual wget untuk opsi lebih lanjut untuk bermain.
Lihat
lynx
juga, sebagai alternatif untuk wget.sumber
--no-cache
di halaman manual mengatakan itu menyebabkan wget untuk "mengirim direktif remote server yang sesuai ('Pragma: no-cache') untuk mendapatkan file dari layanan remote"$ wget http://www.somewebsite.com -O foo.html --delete-after
sumber
--delete-after
pilihan adalah pilihan ketika Anda harus men-download secara rekursif tetapi Anda ingin membuang konten yang sebenarnya.-O /dev/null
Jika Anda juga ingin mencetak di konsol hasil yang dapat Anda lakukan:
sumber
q
mode khusus yang diam, (tidak menampilkan progres dan info lainnya), danO-
(menulis dokumen yang diambil ke konsol).Alternatif lain adalah dengan menggunakan alat seperti
curl
, yang secara default menampilkan konten jarak jauhstdout
daripada menyimpannya ke file.sumber
Periksa opsi "-spider". Saya menggunakannya untuk memastikan situs web saya aktif dan mengirimi saya email jika tidak. Ini adalah entri khas dari crontab saya:
sumber
Jika Anda perlu merayapi situs web menggunakan wget dan ingin meminimalkan ...
Untuk kotak * NIX dan penggunaannya
wget
, saya sarankan melompati penulisan ke file. Saya perhatikan pada kotak Ubuntu 10,04 saya yangwget -O /dev/null
menyebabkan wget untuk membatalkan unduhan setelah unduhan pertama.Saya juga memperhatikan bahwa
wget -O real-file
menyebabkan wget untuk melupakan tautan yang sebenarnya pada halaman. Itu bersikerasindex.html
untuk hadir di setiap halaman. Halaman seperti itu mungkin tidak selalu ada dan wget tidak akan mengingat tautan yang telah dilihat sebelumnya.Untuk merangkak tanpa menulis ke disk, yang terbaik yang saya hasilkan adalah sebagai berikut
Perhatikan tidak ada
-O file
opsi. wget akan menulis ke direktori $ PWD. Dalam hal ini, itu adalah sistem file tmpfs RAM saja . Menulis di sini harus memintas churn disk (tergantung ruang swap) DAN melacak semua tautan. Ini harus merayapi seluruh situs web dengan sukses.Setelah itu tentu saja
sumber
Gunakan opsi --delete-after, yang menghapus file setelah diunduh.
Sunting: Ups, saya baru tahu bahwa sudah dijawab.
sumber
Menurut doc bantuan (wget -h), Anda dapat menggunakan opsi --spider untuk melewati unduhan (versi 1.14).
sumber