Vâng, đôi khi .
Có hai điều thường xảy ra. Liên kết của bạn không hoạt động nữa, vì vậy tôi không chắc kịch bản thực tế trong trường hợp này, vì vậy tôi sẽ tóm tắt trên một liên kết khác.
Chuyển hướng HTTP
Đây là những gì bạn thấy với Bit.ly
và các dịch vụ khác. Những gì sau đó làm là cung cấp một phản hồi chuyển hướng HTTP. Khi bạn truy cập http://bit.ly/oH3410, nó sẽ chuyển hướng đến URL thực tế. Đôi khi một URL chuyển hướng đến một URL khác. Bạn có thể thấy điều này xảy ra nếu bạn cắm URL vào http://web-sniffer.net/ hoặc bằng cách sử dụng, [curl][1] -I http://bit.ly/oH3410
bạn sẽ thấy trả về 301 chỉ đến một Vị trí mới.
Vì vậy, để đối phó với Chuyển hướng HTTP, bạn chỉ cần lặp một yêu cầu HTTP Head cho đến khi bạn ngừng nhận được phản hồi trong 300 giây (hy vọng nhận được 200). Hãy nhớ rằng có thể họ sẽ chuyển hướng trong một vòng lặp, điều này sẽ không bao giờ kết thúc. Bạn có thể làm điều này với CURL hoặc bất kỳ công cụ HTTP nào.
Trang tải về
Đây là những gì hầu hết các trang web tải về sử dụng. Bạn nhấp vào liên kết tải xuống và nó đưa bạn đến một trang có rất nhiều quảng cáo và nói "Quá trình tải xuống của bạn sẽ bắt đầu ngay". [ Ví dụ ]. Với những điều này, bạn có thể cố gắng phân tích liên kết trực tiếp thực tế từ URL, nhưng đó sẽ là trang web cụ thể và hầu hết các trang web sẽ không bao gồm nó để ngăn bạn phá vỡ nó. Điều này được thực hiện thông qua một meta http-equiv="refresh"
thẻ trong tiêu đề hoặc JavaScript (phổ biến nhất). Các JS thường có một dự phòng tiêu đề mặc dù.
Có một giải pháp mặc dù. Nếu bạn nhìn vào nguồn trên trang tải xuống, bạn sẽ thường thấy một <meta http-equiv="refresh">
thẻ (thường là trong <noscript>
thẻ) với thuộc tính URL
chỉ ra tải xuống thực tế. Vì vậy, sử dụng CURL (hoặc bất kỳ công cụ HTTP nào khác) để tải xuống trang, phân tích nó ra và lấy giá trị đó. Một trang web có thể loại trừ điều này mặc dù nếu họ muốn thực sự khó chịu, do đó yêu cầu bạn phải có JavaScript để tải xuống các tệp.
Có lẽ có một khối JavaScript liên kết đến việc tải xuống. Nó có thể bị xáo trộn hoặc được liên kết từ một URL khác. Số dặm của bạn có thể thay đổi khi cố gắng phân tích ra. Cũng có thể có một "liên kết trực tiếp" trên trang. Bạn có thể thử một vài kỹ thuật để tìm ra điều đó, nhưng một lần nữa có thể bị xáo trộn thông qua JavaScript hoặc thậm chí thiếu tất cả cùng nhau.
edit
để xem nguồn markdown cho cách tôi đã làm nó.