无法下载文件(页面url与下载url相同)



我正在尝试使用C#下载一个zip文件(通常通过按下网页上的按钮来访问/下载)。

通常情况下,通过选择"数据导出",然后单击以下URL处的"搜索"按钮下载文件:

http://insynsok.fi.se/SearchPage.aspx?reporttype=0&文化=en-GB&fromdate=2016-05-30&tomdate=2016-06-03

如果在网页上手动触发下载,然后从chrome或firefox的"下载"视图复制下载url,我会得到与上面完全相同的url。当我将其粘贴到浏览器窗口中时,我不会触发下载,相反,上面的页面将被加载,我必须以与最初相同的方式手动触发下载。我还尝试使用检查器的网络选项卡复制单击"SEARCH"按钮时触发的请求的请求标头,但该URL也与上面的URL相同。

尝试使用C#,我得到了相同的结果,页面本身被下载了。我的代码如下:

using (var client = new WebClient())
{
client.DownloadFile("http://insynsok.fi.se/SearchPage.aspx?reporttype=0&culture=sv-SE&fromdate=2016-05-30&tomdate=2016-06-03", "zipfile.zip");
}

我的猜测是我的代码是正确的,但我如何获得正确的URL才能直接下载文件?

ASP.net在页面中插入了一堆垃圾,使这样的事情变得特别困难。(验证令牌、表单令牌等)。

你最好的选择是使用一个名为机械化的python库,或者如果你想坚持使用C#,你可以使用Selenium或C#WebBrowser。这将完全自动访问页面(您可以使C#WebBrowser不可见),然后只需单击按钮以程序方式触发下载。

最新更新