【发布时间】:2012-12-01 00:20:05
【问题描述】:
我正在寻找一个获取网站 URL 的 python 脚本,它可以将带有 css 链接的完整 HTML 源代码也下载到我正在运行我的 python 脚本的本地计算机中。
谁能帮我解决这个问题?
【问题讨论】:
-
使用 CURL 检索页面,解析链接,然后检索文件。如果你想下载网站,需要软件使用HTTRACK
标签: python
我正在寻找一个获取网站 URL 的 python 脚本,它可以将带有 css 链接的完整 HTML 源代码也下载到我正在运行我的 python 脚本的本地计算机中。
谁能帮我解决这个问题?
【问题讨论】:
标签: python
是的,这很容易。你可以使用PyCurl(curl的python绑定)
但是(很可能)您将得到的是经过处理的 html+javascript。(即客户端浏览器读取的内容)。
至于 javascript,大多数生产/商业网站都使用 javascript 框架,这些框架试图优化代码,从而使人类无法阅读。 HTML 也是如此,许多框架允许为 html(可扩展模板)创建分层架构,因此您将得到每页一个 html,它(很可能)由框架使用许多(模板)文件生成。 Css 比其他 2 简单一点;)。
【讨论】:
我同意 0xc0de 和 Joddy 的观点。 PyCurl 和 HTTrack 可以做你想做的事。如果你使用的是 'Nix OS,你也可以使用wget。
是的,这是可能的。事实上,我已经写完了你几天前描述的脚本。 ;) 我不会在这里发布脚本,但我会根据我所做的工作给你一些提示。
urllib2.urlopen (Python 2.x) 或
urllib.request.urlopen (Python 3)。urllib2.urlopen/urllib.request.urlopen) 并获取所有链接
你需要。您可以为此使用BeautifulSoup。然后下载您需要的所有内容(使用您在第 1 步中用于下载网页的相同代码)。href/src更改为本地来更新本地页面
您的 css/image/js 文件的路径。您可以使用fileinput 进行就地文本替换。
有关详细信息,请参阅此SO post。就是这样。您必须担心的可选内容是使用代理从网络连接/下载(如果您使用代理)、创建文件夹和记录器。
【讨论】: