【问题标题】:Python - urlretrieve for entire web pagePython - 整个网页的 urlretrieve
【发布时间】:2012-03-28 15:34:46
【问题描述】:

urllib.urlretrieve('http://page.com', 'page.html')我可以保存索引页面并且只保存page.com的索引​​。 urlretrieve 是否处理类似于 wget -r 的东西,让我下载整个网页结构以及 page.com 的所有相关 html 文件?

问候

【问题讨论】:

  • 不是单独的 - 为此,您需要解析 HTML 并查找链接 (wget docs)。 urllib 不包含任何 HTML 解析器,但您可以使用 lxml.html 之类的东西。
  • 为什么不能使用 wget 或 curl?
  • 谢谢。我可以使用 wget 但正在寻找纯 Python 解决方案。然后我可能会查找链接并解析所有页面。问候
  • 你想要的本质上是一个简单的爬虫。结帐scrapy

标签: python urllib


【解决方案1】:

不直接。

如果您想爬取整个网站,请查看 mechanize:http://wwwsearch.sourceforge.net/mechanize/

这将让您加载页面并点击其中的链接

类似:

import mechanize
br = mechanize.Browser()
br.open('http://stackoverflow.com')
for link in br.links():
    print(link)
    response = br.follow_link(link)
    html = response.read()
    #save your downloaded page
    br.back()

就目前而言,这只会让您在距起点仅一个链接的地方获得页面。不过,您可以轻松地调整它以覆盖整个网站。

如果您真的只想镜像整个站点,请使用 wget。仅当您需要进行某种巧妙的处理(处理 javascript、有选择地跟踪链接等)时,在 python 中执行此操作才值得

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多