ฉันพยายามที่จะดาวน์โหลดไฟล์ที่มีwget
และcurl
และมันจะถูกปฏิเสธด้วยข้อผิดพลาด 403 (ต้องห้าม)
ฉันสามารถดูไฟล์โดยใช้เว็บเบราว์เซอร์ในเครื่องเดียวกัน
ผมลองอีกครั้งกับตัวแทนของผู้ใช้เบราว์เซอร์ของฉันได้โดยhttp://www.whatsmyuseragent.com ฉันทำนี่:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
และ
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
แต่มันก็ยังเป็นสิ่งต้องห้าม มีเหตุผลอื่นอีกอีกบ้างสำหรับ 403 และฉันจะแก้ไขwget
และcurl
คำสั่งต่าง ๆ เพื่อเอาชนะพวกเขาได้อย่างไร
(นี่ไม่เกี่ยวกับความสามารถในการรับไฟล์ - ฉันรู้ว่าฉันสามารถบันทึกได้จากเบราว์เซอร์ของฉัน แต่มันเกี่ยวกับการทำความเข้าใจว่าทำไมเครื่องมือบรรทัดคำสั่งทำงานแตกต่างกัน)
ปรับปรุง
ขอบคุณทุกคำตอบที่ยอดเยี่ยมสำหรับคำถามนี้ ปัญหาเฉพาะที่ฉันพบคือเซิร์ฟเวอร์กำลังตรวจสอบผู้อ้างอิง โดยการเพิ่มนี้ไปยังบรรทัดคำสั่งฉันจะได้รับไฟล์โดยใช้และcurl
wget
เซิร์ฟเวอร์ที่ตรวจสอบผู้อ้างอิงได้เด้งผ่าน 302 ไปยังอีกที่หนึ่งซึ่งไม่ได้ทำการตรวจสอบเลยดังนั้นเว็บไซต์หนึ่งแห่งcurl
หรือwget
ไซต์ดังกล่าวทำงานได้อย่างสมบูรณ์
หากใครสนใจเรื่องนี้เกิดขึ้นเพราะฉันอ่านหน้านี้เพื่อเรียนรู้เกี่ยวกับ CSS ที่ฝังตัวและพยายามดูตัวอย่างของเว็บไซต์ URL จริงที่ฉันได้รับปัญหาคือสิ่งนี้และcurl
ฉันก็จบลงด้วยคือ
curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
และ wget คือ
wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
น่าสนใจมาก.