[英]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文件。
我可以使用webclient downloaddata方法访问此CSV文件吗? 请提供一个代码示例。
我可以做一些程序化的刮擦来登录并填写一些搜索条件,然后进入结果页面以下载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.