2010-10-16 24 views
7

Tôi cần một tập lệnh có thể thu thập dữ liệu một trang web và trả về danh sách tất cả các trang được thu thập thông tin ở dạng văn bản thuần hoặc tương tự; mà tôi sẽ gửi cho các công cụ tìm kiếm dưới dạng sơ đồ trang web. Tôi có thể sử dụng WGET để tạo sơ đồ trang web của một trang web không? Hoặc là có một kịch bản PHP có thể làm như vậy?Tôi có thể sử dụng WGET để tạo sơ đồ trang web của một trang web được cung cấp URL không?

Trả lời

30
wget --spider --recursive --no-verbose --output-file=wgetlog.txt http://somewebsite.com 
sed -n "[email protected]\+ URL:\([^ ]\+\) .\[email protected]\[email protected]" wgetlog.txt | sed "[email protected]&@\&@" > sedlog.txt 

này tạo ra một tập tin gọi là sedlog.txt có chứa tất cả các liên kết được tìm thấy trên các trang web cụ thể. Bạn có thể sử dụng PHP hoặc một kịch bản lệnh shell để chuyển đổi sơ đồ trang web tệp văn bản thành một sơ đồ trang web XML. Tinh chỉnh các tham số của lệnh wget (chấp nhận/từ chối/bao gồm/loại trừ) để chỉ nhận các liên kết bạn cần.

+0

+1 Không thể sử dụng nó giống như nó vì nó đã cho tôi một loạt các lỗi (có lẽ vì các phiên bản wget/sed khác nhau). Nhưng một khi tôi đã làm một số tinh chỉnh, nó làm việc như một say mê. Cảm ơn! – Julian

+2

Bạn nên thêm một sự chậm trễ nhỏ giữa các yêu cầu bằng cách sử dụng '--wait = 1', nếu không nó có thể ảnh hưởng đến hiệu suất của trang web. – Liam

1

Bạn có thể sử dụng kịch bản perl này để làm các trick:

+0

Nó sẽ tạo bằng cách quét hệ thống tệp nhưng sẽ không "thu thập thông tin". Các trang web tôi muốn nhện là năng động. –

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