2009-12-01 163 views
31

python是否有任何方式下載整個HTML頁面及其內容(圖像,CSS)到本地文件夾給定的URL。並更新本地html文件以在本地挑選內容。下載html頁面及其內容

回答

29

可以使用urllib模塊下載單獨的URL,但這將只是返回數據。它不會解析HTML並自動下載CSS文件和圖像等內容。

如果你想下載「整個」頁面,你需要解析HTML並找到你需要下載的其他東西。你可以使用像Beautiful Soup這樣的東西來解析你檢索的HTML。

This question有一些示例代碼正是這樣做的。

6

可以使用urlib:

import urllib.request 

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

這隻會出現下載頁面考慮HTTP響應代碼;它實際上並沒有下載頁面資源,除非我錯過了一些東西。 – bdeniker 2014-06-30 08:13:58

8

你在找什麼是鏡像工具。如果你想在Python中使用Python,PyPI列出了spider.py,但我沒有經驗。其他人可能會更好,但我不知道 - 我使用'wget',它支持getting the CSS和圖像。這可能是你想要(從the manual報價)

只檢索一個HTML頁面,但要 確保需要 該頁面中的所有元素來顯示,比如 內嵌圖像和外部風格 表什麼,也下載。也可以通過 確認下載的頁面引用了 的下載鏈接。

wget -p --convert-links http://www.server.com/dir/page.html