繁体   English   中英

使用C#从Subscription网站(PHP页面)下载文件

[英]Downloading a file from a Subscription website ( PHP pages ) using C#

我是Asp.Net C#开发人员,我想从PHP网站下载CSV文件。 抱歉,如果已解决此问题,但是在这种情况下,链接显示的是JavaScript表单提交。

现在,我们在登录页面上登录,然后在搜索页面上输入日期。 结果页面以Html显示结果,并具有“下载”链接,单击该链接将提供CSV文件。

我们希望通过一些屏幕抓取/下载文件来定期“拉” CSV文件。

“下载”链接显示以下JavaScript,用于将表单提交回服务器以下载CSV文件:

javascript:document.aForm.action='download.php'; setTarget();document.aForm.submit();

我想设置一个C#控制台应用程序以使其定期运行:登录并下载CSV文件。

  1. 我可以使用webclient downloaddata方法访问此CSV文件吗? 请提供一个代码示例。

  2. 我可以做一些程序化的刮擦来登录并填写一些搜索条件,然后进入结果页面以下载csv吗?

对此有什么建议? html敏捷包? 非常感谢任何链接或代码段。

感谢您的协助。

是的,您可以使用WebClient类,并且可以使用WebClient.DownloadFile方法下载文件。

要么

您可以Curl libcurl .net以供参考,您可以关注此帖子

要登录到特定页面,您可以尝试此操作

WebClient client = new WebClient();
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)");
byte[] bret = client.UploadData("http://www.website.com/post.php", "POST",
            System.Text.Encoding.ASCII.GetBytes("field1=value1&field2=value2") );

string sret = System.Text.Encoding.ASCII.GetString(bret);

获得成功响应后,可以解析该响应字符串以获取该超链接,然后使用Webclient.DownloadFile下载文件

    try
    {
        client.DownloadFile("http://www.xyz.com/download.php","abc.csv");
        Console.WriteLine("File Saved.");
    }
    catch (WebException we)
    {
        Console.WriteLine(we.Message + "\n" + we.Status.ToString());
    }
    catch (NotSupportedException ne)
    {
        Console.WriteLine(ne.Message);
    }

我猜你的情况,该超链接javascript是做一个帖子download.php ,所以不是使用webclient.downloadFile你可以简单的做一个后使用手动webclient 以上我已经向您展示了如何发布。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM