2009-12-01 76 views
31

Con trăn có bất kỳ cách nào để tải xuống toàn bộ trang html và nội dung của nó (hình ảnh, css) vào thư mục cục bộ được cung cấp url hay không. Và cập nhật tệp html cục bộ để chọn nội dung cục bộ.Tải xuống trang html và nội dung của trang

Trả lời

29

Bạn có thể sử dụng các mô-đun urllib tải URL cá nhân nhưng điều này sẽ chỉ trả lại dữ liệu. Nó sẽ không phân tích cú pháp HTML và tự động tải xuống những thứ như tệp CSS và hình ảnh.

Nếu bạn muốn tải xuống trang "toàn bộ", bạn cần phải phân tích cú pháp HTML và tìm những thứ khác bạn cần tải xuống. Bạn có thể sử dụng một cái gì đó như Beautiful Soup để phân tích cú pháp HTML bạn truy xuất.

This question có một số mã mẫu làm chính xác điều đó.

6

Bạn có thể sử dụng urlib:

import urllib.request 

opener = urllib.request.FancyURLopener({}) 
url = "http://stackoverflow.com/" 
f = opener.open(url) 
content = f.read() 
+2

Điều đó chỉ xuất hiện để tải xuống trang có tính đến mã phản hồi HTTP của tài khoản; nó không thực sự tải về các nguồn tài nguyên trang trừ khi tôi đang thiếu một cái gì đó. – bdeniker

8

Điều bạn đang tìm kiếm là một công cụ phản chiếu. Nếu bạn muốn một trong Python, PyPI liệt kê spider.py nhưng tôi không có kinh nghiệm với nó. Những người khác có thể tốt hơn nhưng tôi không biết - tôi sử dụng 'wget', hỗ trợ getting the CSS và hình ảnh. Điều này có lẽ làm những gì bạn muốn (trích dẫn từ the manual)

Lấy chỉ có một trang HTML, nhưng chắc bảo rằng tất cả các yếu tố cần thiết cho trang để được hiển thị, chẳng hạn như hình ảnh inline và phong cách bên ngoài tờ , cũng được tải xuống. Đồng thời, hãy thực hiện đảm bảo trang đã tải xuống tham chiếu các liên kết đã tải xuống.

wget -p --convert-links http://www.server.com/dir/page.html 
Các vấn đề liên quan