【问题标题】:Automatically downloading files from a specific website自动从特定网站下载文件
【发布时间】:2011-06-23 05:43:10
【问题描述】:

我是一个非常新的程序员。一个网站提供了很多我需要的 zip 文件。它将每周更新/上传新的 zip 文件。我需要做的是编写一个程序/脚本每周从网上自动下载..例如,这是网络链接http://www.google.com/googlebooks/uspto-patents-applications-yellowbook.html(你可以在那里看到很多zip文件)

所以我的问题是

  1. 我必须编写什么脚本(我没有编写任何脚本的经验,您有什么建议?)以便我可以通过编程方式下载 zip 文件?

  2. 如果第一个问题解决了,那么我应该如何下载每周上传的新 zip 文件?

我必须使用 DOM...unix 吗?如果是,我将对 tat 进行一些研究以使其发挥作用。

【问题讨论】:

  • zip 文件的名称是每周更改还是不变?
  • DOM 与 UNIX 无关。
  • 感谢回复,drlouie 和 Michael...google.com/googlebooks/…,作为链接,您可以在那里看到 zip 文件..名称将根据上传日期更改..

标签: asp.net unix cron screen-scraping scheduled-tasks


【解决方案1】:

如果您使用的是 Linux/UNIX,请在脚本中使用“wget”来下载文件,并使用“cron”来安排下载脚本。

【讨论】:

  • 名称每周都在变化 - 屏幕抓取也会涉及到获取链接列表不是吗?
  • 可以,但是你需要先建立一个你想要wget的URL列表。
  • Michael,我必须使用 UNIX 才能使 wget 工作吗?我不能用windows?
【解决方案2】:

为什么要使用 wget?您可以使用 HtmlAgilityPack 解析网站并提取所有链接。然后,您只需遍历所有 url 并下载文件,一直使用 C#。如果您愿意,也可以从 c# 打开一个 wget 进程。

另一方面,这可以很容易地使用 bash 和 sed/awk 和 grep 结合 wget 来完成。

无论哪种方式,您仍然需要 cron 来安排每周一次的作业。

WebClient Client = new WebClient ();
Client.DownloadFile("http://www.csharpfriends.com/Members/index.aspx", "index.aspx");

【讨论】:

  • 有一个 windows 端口 (cronw.sourceforge.net),但是为什么不直接在 Windows 上使用 Windows 的调度程序呢?
【解决方案3】:

我还在 Java/Scala 应用程序中非常有效地使用 JSoup (http://jsoup.org/) 从网页中抓取数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    相关资源
    最近更新 更多