วิธีใช้ wget เพื่อดาวน์โหลดจากโฮสต์ไซต์?


11

wget เป็นเครื่องมือที่มีประโยชน์มากในการดาวน์โหลดข้อมูลบนอินเทอร์เน็ตได้อย่างรวดเร็ว แต่ฉันสามารถใช้มันเพื่อดาวน์โหลดจากโฮสต์ไซต์เช่น FreakShare, IFile.it Depositfiles, อัปโหลด, Rapidshare หรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร


4
ไม่ไซต์เหล่านี้ส่วนใหญ่มักใช้จาวาสคริปต์และอุปสรรคอื่น ๆ เพื่อกำจัดการเชื่อมโยงโดยตรงไปยังไฟล์หรือไม่
ทิม

@Tim ฉันคิดว่าคุณถูกต้องเพราะเป็นไปไม่ได้ที่จะได้รับลิงค์โดยตรงจากเว็บไซต์เหล่านั้น
Zignd

@swift คุณช่วยแปลมันเป็นภาษาอังกฤษและโพสต์บน pastebin หรือที่อื่นได้
ไหม

คำตอบ:


11

เว็บไซต์ประเภทนี้พยายามทำให้ไม่ยากที่จะใช้เว็บเบราว์เซอร์กราฟิกเพราะถ้าคุณใช้ wget คุณจะพลาดโฆษณาทั้งหมดที่จ่ายแบนด์วิดท์

บางเว็บไซต์จะไม่ทำให้การตรวจสอบที่ทันสมัยและสามารถหลอกได้อย่างง่ายดาย: wget บอกจะแกล้งทำเป็นว่ามันจริงๆ Mozillaและว่ามันมาจากการดาวน์โหลดเว็บไซต์

wget --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' \
     --referer=http://downloadsite.example.com/download-page-url
     http://downloadsite.example.com/download-page-url/filename.ext`

ไซต์ส่วนใหญ่ที่ตรวจสอบจะทำให้คุณไม่ต้องไปไหน--user-agent=Mozillaและ--refererตั้งค่าเป็น URL ของไฟล์ที่คุณกำลังดาวน์โหลด

สำหรับบางเว็บไซต์คุณอาจต้องส่งออกคุกกี้ของเว็บเบราว์เซอร์และส่ง--load-cookiesต่อเพื่อ wget ณ จุดนี้การใช้ wget เริ่มทำงานได้ดีกว่าการดาวน์โหลดด้วยตนเอง วิธีที่ดีที่สุดที่สามารถทำงานตลอดเวลา แต่ต้องมีการเข้ารหัสสำหรับแต่ละเว็บไซต์คือการใช้กรอบการทำงานอัตโนมัติเบราว์เซอร์เช่นซีลีเนียมหรือWatir

ดูเพิ่มเติมอัตโนมัติร้องขอเว็บโดยใช้ curl?


! น่ากลัว คำตอบของคุณช่วยฉันเขียนสิ่งนี้สำหรับZippyshareลิงค์: stackoverflow.com/a/21100640/1533054
Sheharyar

7

สำหรับ Zippyshare:

วิธีการนี้สร้างขึ้นในคำตอบที่กิลส์ อย่างที่เขาพูดเคล็ดลับคือการทำให้เซิร์ฟเวอร์คิดว่าการร้องขอนั้นทำจากเบราว์เซอร์และเพื่อให้เกิดขึ้นคุณต้องมีสองสิ่ง:

  • ลิงก์ดาวน์โหลด (ลิงก์จริงไปยังไฟล์)
  • ลิงค์ผู้อ้างอิง (หน้าเว็บพร้อมปุ่มดาวน์โหลด)
  • รหัสเซสชัน Zippyshare (พบในคุกกี้)

ต่อไปนี้เป็นภาพหน้าจอที่อธิบายตำแหน่งที่คุณสามารถรับแต่ละรายการ

ดาวน์โหลดจาก Zippyshare

ตอนนี้เปิด terminal ของคุณและใช้คำสั่งต่อไปนี้ (แทนที่รายการที่จำเป็น):

wget <download_link> \
--referer='<referrer>' \
--cookies=off --header "Cookie: JSESSIONID=<session_id>" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'

ตัวอย่าง:

wget http://www16.zippyshare.com/d/29887835/8895183/hello.txt \
--referer='http://www16.zippyshare.com/v/29887835/file.html' \
--cookies=off --header "Cookie: JSESSIONID=26458C0893BF69F88EB5743D74FE0F8C" \
--user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1'

หมายเหตุ: ในคำสั่งมันrefererไม่จริงreferrer


1
ฉันแค่อยากจะเพิ่มว่า Sheharyar ใช้Firebugในภาพหน้าจอนี้ นี่คือทุกคน (รวมถึงฉัน) ที่พยายามทำสิ่งนี้ในสารวัตร (ซึ่งเป็นไปไม่ได้)
ไวยากรณ์

1

ฉันต้องการคำตอบที่สมบูรณ์แบบฉันใช้เคล็ดลับต่อไปนี้ในการดาวน์โหลดภาพยนตร์สำหรับเด็กจาก Turbobit:

แทนคำตอบ SESSION_ID จากด้านบนคุณต้องค้นหา "compid" จากแท็บคุกกี้ของ FIREBUG:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากนั้นคำสั่งสำหรับระบบฝังตัวเดเบียนของฉันนั้นง่ายมาก:

wget --referer='http://http://turbobit.net/download/free/yilmacr4e351' --cookies=off --header "Cookie: compid=c9255510c34624435292d8a0e7e405be66aa01f9%7ED01343F87AB53A2C38D957A564DA1D55" --user-agent='Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1' http://turbobit.net/download/redirect/B3EDACDA9B899937A149D5AAB6662327/yilmacr4e351/Ters.Yuz.2015.1080P.WEBDL.TR.EN.mkv &

ฉันสามารถปิดเครื่องคอมพิวเตอร์ได้แล้วตอนนี้ :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.