ฉันกำลังใช้wget
โปรแกรม แต่ฉันไม่ต้องการให้บันทึกไฟล์ html ที่ฉันกำลังดาวน์โหลด ฉันต้องการให้ยกเลิกหลังจากได้รับแล้ว ฉันจะทำอย่างไร
ฉันกำลังใช้wget
โปรแกรม แต่ฉันไม่ต้องการให้บันทึกไฟล์ html ที่ฉันกำลังดาวน์โหลด ฉันต้องการให้ยกเลิกหลังจากได้รับแล้ว ฉันจะทำอย่างไร
คำตอบ:
คุณสามารถเปลี่ยนเส้นทางผลลัพธ์ของ wget เป็น / dev / null (หรือ NUL บน Windows):
wget http://www.example.com -O /dev/null
ไฟล์จะไม่ถูกเขียนลงดิสก์ แต่จะถูกดาวน์โหลด
หากคุณไม่ต้องการที่จะบันทึกไฟล์และคุณได้รับการยอมรับวิธีการแก้ปัญหาของการดาวน์โหลดหน้าใน/dev/null
, ฉันคิดว่าคุณกำลังใช้ wget ไม่ได้ที่จะได้รับและแยกเนื้อหาหน้า
หากความต้องการที่แท้จริงของคุณคือการเรียกการกระทำระยะไกลให้ตรวจสอบว่ามีหน้านั้นอยู่และอื่น ๆ ฉันคิดว่ามันจะเป็นการดีกว่าถ้าจะหลีกเลี่ยงการดาวน์โหลดหน้าเนื้อหาของ html เลย
เล่นกับwget
ตัวเลือกต่างๆเพื่อดึงข้อมูลเฉพาะสิ่งที่คุณต้องการเช่นส่วนหัว http สถานะคำขอ ฯลฯ
สมมติว่าคุณต้องตรวจสอบหน้าว่าตกลง (เช่นสถานะที่ส่งคืนคือ 200) คุณสามารถทำสิ่งต่อไปนี้:
wget --no-cache --spider http://your.server.tld/your/page.html
หากคุณต้องการแยกวิเคราะห์เซิร์ฟเวอร์ที่ส่งคืนส่วนหัวให้ทำดังนี้
wget --no-cache -S http://your.server.tld/your/page.html
ดูหน้าwget manสำหรับตัวเลือกเพิ่มเติมเพื่อเล่นกับ
ดูlynx
ด้วยเช่นกันเพื่อเป็นทางเลือกในการ wget
--no-cache
ในหน้าคนบอกว่ามันเป็นสาเหตุให้ wget "ส่งเซิร์ฟเวอร์ระยะไกลคำสั่งที่เหมาะสม ('Pragma: ไม่มีแคช') เพื่อรับไฟล์จากบริการระยะไกล"
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
ตัวเลือกที่เป็นทางเลือกเมื่อคุณต้องดาวน์โหลดซ้ำ แต่คุณต้องการที่จะทิ้งเนื้อหาจริง
-O /dev/null
ในกรณีที่คุณต้องการพิมพ์ในคอนโซลผลลัพธ์ที่คุณสามารถทำได้:
wget -qO- http://www.example.com
q
โหมดเงียบโดยเฉพาะ(มันไม่คืบหน้าของการส่งออกและข้อมูลอื่น ๆ ) และO-
(เขียนเอกสารที่ดึงมาเพื่อคอนโซล)
อีกทางเลือกหนึ่งคือการใช้เครื่องมือเช่นcurl
โดยค่าเริ่มต้นจะส่งเนื้อหาระยะไกลไปที่stdout
แทนที่จะบันทึกลงในไฟล์
ลองดูตัวเลือก "-spider" ฉันใช้เพื่อให้แน่ใจว่าเว็บไซต์ของฉันพร้อมใช้งานและส่งอีเมลถึงฉันหากไม่มี นี่เป็นรายการทั่วไปจาก crontab ของฉัน:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
สำหรับกล่อง * NIX และการใช้wget
ฉันแนะนำให้ข้ามการเขียนไปยังไฟล์ ฉันสังเกตเห็นในกล่อง Ubuntu 10.04 ของฉันที่wget -O /dev/null
ทำให้เกิดการยกเลิกการดาวน์โหลดหลังจากการดาวน์โหลดครั้งแรก
ฉันยังสังเกตเห็นว่าwget -O real-file
ทำให้ลืมการเชื่อมโยงจริงในหน้า มันยืนยันที่index.html
จะนำเสนอในแต่ละหน้า หน้าดังกล่าวอาจไม่แสดงอยู่เสมอและ wget จะไม่จดจำลิงก์ที่เคยเห็นก่อนหน้านี้
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
สังเกตเห็นว่าไม่มี-O file
ตัวเลือก wget จะเขียนไปยังไดเรกทอรี $ PWD ในกรณีนี้เป็นระบบไฟล์tmpfsที่เป็น RAM เท่านั้น การเขียนที่นี่ควรหลีกเลี่ยงดิสก์ปั่นป่วน (ขึ้นอยู่กับพื้นที่สว็อป) และติดตามลิงก์ทั้งหมด ซึ่งควรรวบรวมข้อมูลเว็บไซต์ทั้งหมดเป็นผลสำเร็จ
หลังจากนั้นแน่นอน
rm --recursive --force /dev/shm/1/*
ใช้ตัวเลือก --delete-after ซึ่งจะลบไฟล์หลังจากดาวน์โหลด
แก้ไข: โอ๊ะฉันเพิ่งสังเกตเห็นว่าได้รับคำตอบแล้ว
ตามเอกสารช่วยเหลือ (wget -h) คุณสามารถใช้ตัวเลือก - สไปเดอร์เพื่อข้ามดาวน์โหลด (เวอร์ชั่น 1.14)
Download:
-S, --server-response print server response.
--spider don't download anything.
/dev/null
สิ่งนี้จะใช้ได้หรือไม่