我怎样才能使用c#将.doc或.pdf等文件从互联网下载到我的硬盘

时间:2011-03-09 20:06:56

标签: c#

我如何从互联网上下载像.doc,.pdf这样的文件 硬盘使用c#

5 个答案:

答案 0 :(得分:5)

using (var client = new System.Net.WebClient())
{
    client.DownloadFile( "url", "localFilename");
}

答案 1 :(得分:3)

使用WebClient类:

using(WebClient wc = new WebClient())
wc.DownloadFile("http://a.com/foo.pdf", @"D:\foo.pdf");

根据评论进行修改:

基于您的评论我认为您要做的是下载即从HTML页面链接到的PDF文件。在那种情况下你可以

  1. 下载页面(使用WebClient, 见上文)

  2. 使用HtmlAgilityPack查找 页面中的所有链接 指向pdf文件

  3. 下载pdf文件

  4.   

    我正在开发一个爬虫,如果我   为例如:SHA算法指定关键字   我选择.pdf或.doc选项   从它应该下载的爬虫   选择格式为a的文件   目标文件夹..

    根据您的澄清,这是一个使用谷歌获取搜索结果的解决方案:

    DownloadSearchHits("SHA", "pdf");
    
    ...
    
    public static void DownloadSearchHits(string searchTerm, string fileType)
    {
        using (WebClient wc = new WebClient())
        {
            string html = wc.DownloadString(string.Format("http://www.google.com/search?q={0}+filetype%3A{1}", searchTerm, fileType));
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(html);
            var pdfLinks = doc.DocumentNode
                                .SelectNodes("//a")
                                .Where(link => link.Attributes["href"] != null 
                                       && link.Attributes["href"].Value.EndsWith(".pdf"))
                                .Select(link => link.Attributes["href"].Value)
                                .ToList();
    
            int index = 0;
            foreach (string pdfUrl in pdfLinks)
            {
                wc.DownloadFile(pdfUrl, 
                                string.Format(@"C:\download\{0}.{1}", 
                                                index++, 
                                                fileType));
            }
        }
    }
    

    一般情况下,您应该问一个与您已经拥有的特定实施的特定问题相关的问题 - 根据您的问题,您很难实现独立的抓取工具

答案 2 :(得分:3)

最简单的方法是使用WebClient.DownloadFile

答案 3 :(得分:1)

使用System.Net中的WebClient.DownloadFile()

答案 4 :(得分:0)

使用WebClient.DownloadFile

http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadfile.aspx

    using (var client = new WebClient())
    {
        var data = client.DownloadFile(url, filename);
    }