【问题标题】:How to 'Grab' content from another website如何从另一个网站“抓取”内容
【发布时间】:2010-08-01 13:08:47
【问题描述】:

朋友问我这个问题,我无法回答。

他问:我正在制作这个网站,您可以在其中存档您的网站...

它的工作原理是这样的,您输入您的网站,例如 something.com,然后我们的网站会抓取该网站上的内容(如图像),以及所有这些内容并将其上传到我们的网站。然后人们可以在 oursite.com/something.com 上查看该站点的精确副本,即使阻止 something.com 的服务器已关闭。

他怎么能这样? (php?) 有什么要求?

【问题讨论】:

  • “您可以将网站存档的网站”web.archive.org
  • 如果你熟悉 php,有 Symfony2 组件,称为 WebCrawler 和 CssDom。 Symfony 的创建者已经整理了一个演示,展示了如何使用这些组件进行网络抓取。 github.com/fabpot/Goutte

标签: web-crawler archive


【解决方案1】:

听起来您需要创建一个网络爬虫。 Web 爬虫可以用任何语言编写,尽管我建议使用 C++(使用 cURL)、Java(使用 URLConnection)或 Python(w/urrlib2)。您可能还可以使用 curl 或 wget 命令和 BASH 快速破解某些东西,尽管这可能不是最好的长期解决方案。此外,请不要忘记,您应该下载、解析并尊重“robots.txt”文件(如果您在抓取某人的网站时存在)。

【讨论】:

    【解决方案2】:

    使用 wget。 gnuwin32 软件包中的 linux 版本或 windows 版本。 get it here.

    【讨论】:

    • 我认为使用 wget 只会让你得到 html 。如果该站点有其他来源(图片、文件..),您仍然会引用相同的(可能不可用的)资源。如果目的是提供一个临时的“故障转移”站点,他可能还需要下载资源。
    • 这是错误的,wget 可以创建镜像,也会抓取其他资源。当然,您必须正确设置它。
    【解决方案3】:
    1. 使用 curl 获取 html。
    2. 现在将所有图像、css、javascript 更改为绝对 url,如果它们是相对 url。 (这有点不道德)。您可以从您的网站获取所有这些资产并托管。
    3. 尊重所有网站的“robots.txt”。 read here

    【讨论】:

      猜你喜欢
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2017-05-14
      相关资源
      最近更新 更多