Tôi có thể sử dụng wget để kiểm tra 404 và không thực sự tải xuống tài nguyên không? Nếu vậy thì làm thế nào? Cảm ơn
Câu trả lời:
Có tham số dòng lệnh --spider
chính xác cho việc này. Trong chế độ này, wget không tải xuống các tệp và giá trị trả về của nó bằng 0 nếu tìm thấy tài nguyên và khác 0 nếu không tìm thấy. Hãy thử điều này (trong trình bao yêu thích của bạn):
wget -q --spider address
echo $?
Hoặc nếu bạn muốn đầu ra đầy đủ, hãy bỏ -q
đi, chỉ vậy wget --spider address
. -nv
hiển thị một số đầu ra, nhưng không nhiều như mặc định.
wget --spider
gửi một yêu cầu HEAD, không phải GET.
wget --spider
có HEAD và nếu thành công, theo sau là GET đến cùng một URL. Do đó, với tùy chọn đệ quy, nó rất hữu ích để xây dựng bộ đệm cho trang web phía máy chủ.
Nếu bạn muốn kiểm tra nhẹ nhàng qua $? mà không gặp rắc rối với đầu ra của wget, bạn có thể sử dụng:
wget -q "http://blah.meh.com/my/path" -O /dev/null
Hoạt động ngay cả trên các URL chỉ có một đường dẫn nhưng có nhược điểm là thứ gì đó đã thực sự được tải xuống, vì vậy điều này không được khuyến nghị khi kiểm tra sự tồn tại của các tệp lớn.
--spider
arg không thiết lập một mã trở lại. Nhưng có lẽ đó là vì sau 4 năm 3 tháng 7 ngày, con nhện đã thông minh hơn.
Có, dễ dàng.
wget --spider www.bluespark.co.nz
Điều đó sẽ cung cấp cho bạn
Resolving www.bluespark.co.nz... 210.48.79.121
Connecting to www.bluespark.co.nz[210.48.79.121]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
200 OK
Nếu bạn đang ở trong một thư mục mà chỉ người chủ mới có quyền truy cập để ghi vào hệ thống. Sau đó, bạn có thể trực tiếp sử dụng wget www.example.com/wget-test
bằng tài khoản người dùng tiêu chuẩn. Vì vậy, nó sẽ truy cập vào url nhưng do không có quyền ghi tệp sẽ không được lưu .. Phương pháp này hoạt động tốt đối với tôi vì tôi đang sử dụng phương pháp này cho một cronjob. Cảm ơn.
sthx
--spider
mà thực hiện chính xác những gì các OP hỏi