【问题标题】:Is it possible to get complete source code of a website including css by just providing the URL of website? + Python是否可以通过提供网站的 URL 来获得包括 css 在内的网站的完整源代码? + 蟒蛇
【发布时间】:2012-12-01 00:20:05
【问题描述】:

我正在寻找一个获取网站 URL 的 python 脚本,它可以将带有 css 链接的完整 HTML 源代码也下载到我正在运行我的 python 脚本的本地计算机中。

谁能帮我解决这个问题?

【问题讨论】:

  • 使用 CURL 检索页面,解析链接,然后检索文件。如果你想下载网站,需要软件使用HTTRACK

标签: python


【解决方案1】:

是的,这很容易。你可以使用PyCurl(curl的python绑定)

但是(很可能)您将得到的是经过处理的 html+javascript。(即客户端浏览器读取的内容)。

至于 javascript,大多数生产/商业网站都使用 javascript 框架,这些框架试图优化代码,从而使人类无法阅读。 HTML 也是如此,许多框架允许为 html(可扩展模板)创建分层架构,因此您将得到每页一个 html,它(很可能)由框架使用许多(模板)文件生成。 Css 比其他 2 简单一点;)。

【讨论】:

    【解决方案2】:

    我同意 0xc0de 和 Joddy 的观点。 PyCurl 和 HTTrack 可以做你想做的事。如果你使用的是 'Nix OS,你也可以使用wget

    是的,这是可能的。事实上,我已经写完了你几天前描述的脚本。 ;) 我不会在这里发布脚本,但我会根据我所做的工作给你一些提示。

    1. 下载网页。您可以使用urllib2.urlopen (Python 2.x) 或 urllib.request.urlopen (Python 3)。
    2. 然后下载页面后,解析源代码 下载页面(嗯,你也可以在线解析源代码,但是 这意味着再次调用
      urllib2.urlopen/urllib.request.urlopen) 并获取所有链接 你需要。您可以为此使用BeautifulSoup。然后下载您需要的所有内容(使用您在第 1 步中用于下载网页的相同代码)。
    3. 通过将所有href/src更改为本地来更新本地页面 您的 css/image/js 文件的路径。您可以使用fileinput 进行就地文本替换。 有关详细信息,请参阅此SO post

    就是这样。您必须担心的可选内容是使用代理从网络连接/下载(如果您使用代理)、创建文件夹和记录器。

    您也可以使用Scrapy。查看blog post,了解如何使用 Scrapy 抓取网站。

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 2021-01-27
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 2010-12-23
      • 2020-03-22
      • 2020-07-23
      • 2012-02-28
      相关资源
      最近更新 更多