2008-09-15 66 views
39

Các kỹ thuật hoặc công cụ nào được khuyến nghị để tìm các liên kết bị hỏng trên một trang web?Cách tìm các liên kết bị hỏng trên trang web

Tôi có quyền truy cập vào tệp nhật ký, vì vậy có thể phân tích cú pháp những lỗi tìm kiếm lỗi 404 này, nhưng muốn có thứ gì đó được tự động hóa (hoặc cố gắng theo dõi) tất cả liên kết trên trang web.

+1

Ngoài ra còn có [HTTrack] (http://www.httrack.com/) có thể thực hiện công việc khá tốt. –

+0

Nếu bạn quan tâm đến việc tìm các liên kết đã chết, bao gồm cả việc xem xét nếu số nhận dạng phân đoạn là trực tiếp, sau đó xem xét https://github.com/gajus/deadlink. – Gajus

+0

@DaviddCeFreitas: Chăm sóc để tạo ra một câu trả lời để chúng ta có thể thấy chính xác chúng ta có thể sử dụng httrack để tìm liên kết chết như thế nào? –

Trả lời

35

Xem LinkChecker cho Firefox.

Đối với Mac OS, có một công cụ Integrity có thể kiểm tra URL để biết các liên kết bị hỏng.

Đối với Windows có Xenu's Link Sleuth.

+3

Xenuth của liên kết Sleuth trông chỉ vé. –

+0

Tính toàn vẹn thật tuyệt vời! Cám ơn vì đã chia sẻ. –

+0

Tôi ở sau http://checkerr.org – zupa

0

Cách tốt nhất là tạo một bot nhỏ chạy trên toàn bộ trang web của bạn và ghi lại kết quả. Tôi đã làm điều này để kiểm tra các trang web của tôi trước khi triển khai và nó hoạt động thực sự tốt.

+1

bạn có thể vui lòng cho tôi bot nhỏ hoặc thuật toán mà tôi có thể tự mình thử cho trang web của mình không. cảm ơn trước – gmhk

+0

... một số tham chiếu ít nhất sẽ được chào đón. Bot không đổ chuông nhiều. Tôi sẽ loại bỏ downvote của tôi ngay lập tức nếu bài đăng này được thực hiện dễ tiếp cận hơn -1, bây giờ có mùi tăng cường-off. – hhh

+0

Quá trình này sẽ mất vài tuần. Xem bình luận của tôi chống lại câu trả lời của ConroyP. – NickG

2

Hoặc sử dụng công cụ phân tích tệp nhật ký của bạn và cung cấp cho bạn báo cáo 'liên kết bị hỏng' (ví dụ: Analog hoặc Google Webmaster Tools) hoặc chạy công cụ thu thập trang web của bạn và báo cáo liên kết bị hỏng (ví dụ: W3C Link Checker).

10

Tôi thích số W3C Link Checker.

+1

Tôi cũng thế. Nếu bạn đánh dấu chọn 'Kiểm tra các tài liệu được liên kết đệ quy' và để trống trường 'độ sâu đệ quy', nó có vẻ như recurse vô hạn trên miền được chỉ định. – mb21

7

Xem linkchecker công cụ:

LinkChecker là miễn phí, GPL được cấp phép website validator. LinkChecker kiểm tra các liên kết trong tài liệu web hoặc trang web đầy đủ.

+0

Điều này là tốt đẹp vì nó chạy cục bộ và hiển thị cả nguồn đích và đích đến của các liên kết bị hỏng. –

+0

Công cụ tuyệt vời thực sự. Nó có một GUI, một phiên bản CLI và một phiên bản web. – Geert

0

Tốt nhất là để gõ cùng nhện của riêng bạn trong ngôn ngữ kịch bản của bạn lựa chọn, nó có thể được thực hiện một cách đệ quy dọc theo dòng:

// Pseudo-code to recursively check for broken links 
// logging all errors centrally 
function check_links($page) 
{ 
    $html = fetch_page($page); 
    if(!$html) 
    { 
     // Log page to failures log 
     ... 
    } 
    else 
    { 
     // Find all html, img, etc links on page 
     $links = find_links_on_page($html); 
     foreach($links as $link) 
     { 
      check_links($link); 
     } 
    } 
} 

Sau khi trang web của bạn đã nhận được một mức độ nhất định của sự chú ý từ Google, webmaster tools của họ là vô giá khi hiển thị các liên kết bị hỏng mà người dùng có thể gặp phải, nhưng điều này khá phản cảm - các liên kết chết có thể tồn tại trong vài tuần trước khi google lập chỉ mục và ghi nhật ký 404 trong bảng điều khiển web của bạn.

Viết tập lệnh của riêng bạn như trên sẽ hiển thị cho bạn tất cả các liên kết hỏng có thể, mà không phải đợi google (công cụ quản trị trang web) hoặc người dùng của bạn (404 trong nhật ký truy cập).

+1

Tôi không còn thời gian cho những thử thách trí tuệ như vậy nữa (vui vẻ mặc dù nó có vẻ như vậy), và đã hy vọng ai đó có thể đã viết một con nhện như vậy rồi!:-) –

+0

Nếu ai đó từng viết một mã giả hữu ích -> công cụ chuyển đổi PHP/Perl, thì chúng tôi sẽ hoạt động! – ConroyP

+0

+1 thông tin luôn là điều tốt, nhiều thông tin hơn: P – hhh

-1

Có một ứng dụng cửa sổ có tên là CheckWeb. Nó không còn phát triển nữa, nhưng nó hoạt động tốt và mã mở (C++ tôi tin).

Bạn chỉ cần cung cấp cho nó một url, và nó sẽ bò trang web của bạn (và các liên kết bên ngoài nếu bạn chọn), báo cáo bất kỳ lỗi nào, hình ảnh/trang "trọng lượng" vv

http://www.algonet.se/~hubbabub/how-to/checkweben.html

1

Trong một. NET ứng dụng bạn có thể thiết lập IIS để vượt qua tất cả các yêu cầu để ASP.NET và sau đó trong trình xử lý lỗi toàn cầu của bạn, bạn có thể bắt và đăng nhập lỗi 404. Đây là điều bạn muốn làm ngoài việc trang web của bạn để kiểm tra các liên kết bị thiếu nội bộ. Làm như vậy có thể giúp tìm các liên kết bị hỏng từ các trang web KHÁC và sau đó bạn có thể sửa chúng bằng chuyển hướng 301 đến đúng trang.

Để giúp kiểm tra trang web của bạn nội bộ, cũng có bộ công cụ SEO của Microsoft.

Tất nhiên, kỹ thuật tốt nhất là tránh sự cố lúc biên dịch! Trong ASP.NET, bạn có thể nhận được gần với điều này bằng cách yêu cầu tất cả các liên kết được tạo ra từ các phương thức tĩnh trên mỗi trang vì vậy chỉ có một vị trí mà bất kỳ URL nào được tạo ra. ví dụ. http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx

Nếu bạn muốn có một hoàn chỉnh C# bánh xích, có ai ở đây: - http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/

0

LinkTiger có vẻ như một dịch vụ rất được đánh bóng (mặc dù không phải là miễn phí) để làm điều này. Tôi không sử dụng nó, chỉ muốn thêm vì nó chưa được đề cập.

1

Sản phẩm thương mại của chúng tôi DeepTrawl thực hiện việc này và có thể được sử dụng trên cả Windows/Mac.

Tiết lộ: Tôi là nhà phát triển chính đằng sau DeepTrawl.

20

Chỉ cần tìm thấy tập lệnh wget thực hiện những gì bạn đang yêu cầu.

wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com 

Ghi có cho số này là .

+2

Phiên bản 32 bit của ** wget ** cho Windows có thể được tìm thấy trên SourceForge [ở đây] (http://gnuwin32.sourceforge.net/packages/wget.htm). * (Liên kết cho các tệp nhị phân GNU khác cho Windows có thể tìm thấy tại đây] (http://gnuwin32.sourceforge.net/packages.html)) *. Trang ** man ** cho ** wget ** có thể tìm thấy tại đây (https://www.gnu.org/software/wget/manual/wget.html). – DavidRR

+1

Sự cố với phương pháp này là giải thích nhật ký không phải là dễ nhất. Bạn có thể grep cho '404' và cho' liên kết bị hỏng', nhưng rõ ràng nơi liên kết được tìm thấy. – Flimm

Các vấn đề liên quan