Cách sử dụng wget hoặc công cụ khác để tải xuống một tệp mà liên kết bị ẩn (chỉ kích hoạt khi nhấp)


8

Tôi muốn tải xuống một số tệp phụ đề, được lưu trữ dưới dạng tệp rar http://sub.sab.bz/ Trang web cung cấp nguồn cấp dữ liệu rss cho các bản phát hành mới. Thật không may, liên kết được cung cấp sẽ mở một trang tải xuống, nhưng sẽ không nhận được tệp.

Trang tải xuống có một nút ở giữa và nhấp vào nó sẽ kích hoạt tải xuống tệp rar mong muốn. Dù sao, nếu tôi nhấp chuột phải và sao chép liên kết và cố gắng mở nó, trình duyệt sẽ tự mở trang tải xuống, nhưng sẽ không tải xuống tệp. Khi tôi cố gắng sử dụng liên kết tải xuống của tệp trong wget và curl, một tệp php được tải xuống. Tôi đọc rằng trong những trường hợp như vậy, một kịch bản phía máy chủ được sử dụng để truyền liên kết chính xác đến máy khách.

Vì vậy, tôi đang tìm cách để buộc wget mô phỏng hành động onclick của liên kết này. Tôi biết html css và javascript đủ để tìm các thuộc tính khác của liên kết tải xuống.

Điều này thậm chí có thể được thực hiện?

Tái bút Tôi khá bối rối tại sao câu hỏi này đã được bỏ phiếu? Bất kỳ lời giải thích tốt, tôi đã phá vỡ bất kỳ quy tắc cho đăng hoặc một cái gì đó, cảm ơn bạn ..


Có thể trùng lặp: "... tự động hóa một số tác vụ web ..." - ít nhất là câu trả lời của nó được áp dụng, tôi đoán
sr_

5
FWIW, trang web đó chỉ kiểm tra người giới thiệu. wget --referer http://subs.sab.bz/ 'http://subs.sab.bz/...&attach_id=1234'đã cho tôi một tập tin RAR.
hhaamu

Gửi nó như một câu trả lời, vì vậy tôi có thể nâng cao ans chấp nhận nó. Cảm ơn bạn. Muốn biết thêm thông tin chính xác những gì người giới thiệu làm và được sử dụng cho, không thể hiểu được
arcticle

Tôi đã không đánh giá thấp bạn, nhưng bạn đã bị từ chối vì câu hỏi không rõ ràng lắm. (Nếu một câu hỏi trái với quy tắc, nó thường bị đóng lại.)
hhaamu

Câu trả lời:


15

Bạn đang bối rối một vài điều. Các hành động "Onclick" đề cập đến JavaScript và là phía máy khách. Bạn sẽ phải kiểm tra cái móc JavaScript trên các liên kết đó để làm sáng tỏ URL. Tuy nhiên, không có hành động onclick trong chơi ở đây.

Những gì trang web trong câu hỏi làm là kiểm tra tham chiếu , còn được gọi là "bảo vệ hotlink" . Trình duyệt gửi giá trị tham chiếu theo mặc định và đó là URL của trang trước. Điều này được thực hiện để một số trang web khác không làm giảm băng thông của trang web bằng cách đăng liên kết trực tiếp đến các tệp.

Nếu bạn đã cố sao chép liên kết và dán thẳng vào trình duyệt của mình, bạn sẽ có hành vi tương tự như bạn đang mô tả trong câu hỏi của mình, vì trình duyệt sẽ không biết gửi thông tin giới thiệu sau đó.

Tùy chọn để nói với wget để giả mạo giá trị của người giới thiệu là --referer-echo curl. Giá trị thường có thể được đặt an toàn vào thư mục gốc của trang web - các trang web thường không kiểm tra xem giá trị đó có chính xác không :

wget -O output.rar --referer http://subs.sab.bz/ 'http://subs.sab.bz/your-link-here'

Cảm ơn bạn :) Tôi đã nhầm lẫn, đó là đúng. Tôi cho rằng đã có điều gì đó xảy ra khi tôi nhấp vào nút tải xuống, do đó, giả định onclick của tôi .. Cảm ơn bạn đã xóa cái này cho tôi.
boong

Tôi đã thử điều này với ipcam của tôi, nhưng không có nhiều thành công. wget -O snapshot.jpg --referer http://192.168.178.58:81 'http://192.168.178.58:81/snapshot.cgi?user=admin&pwd=12345678'. Nếu tôi dịch đầu ra bằng tiếng Anh, đó là "kết nối được thiết lập, yêu cầu HTTP được gửi, chờ trả lời" Sau đó, wget bị kẹt. Tôi chắc chắn rằng tôi sử dụng nó không chính xác, nhưng làm cách nào để tải xuống jpg với bash? Cảm ơn vì sự giúp đỡ của bạn trước đó.
McPeppr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.