我正在尝试使用C#下载压缩文件(通常通过按下网页上的按钮来访问/下载)。
通常通过选择“数据导出”,然后在此URL单击“搜索”按钮来下载文件:
http://insynsok.fi.se/SearchPage.aspx?reporttype=0&culture=en-GB&fromdate=2016-05-30&tomdate=2016-06-03
如果在网页上手动触发下载,然后从chrome或firefox的'Downloads‘视图中复制下载url,我会得到与上面完全相同的URL。当我将其粘贴到浏览器窗口中时,我不会触发下载,相反,上面的页面将被加载,我必须以与第一个位置相同的方式手动触发下载。我还尝试使用检查器的network选项卡来复制单击"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才能直接下载文件呢?
发布于 2016-06-06 10:34:34
ASP.net在页面中插入了一堆垃圾,使得这样的事情变得特别困难。(验证令牌、表单令牌等)。
您最好的选择是使用一个名为Mechanize的python库,或者如果您想坚持使用C#,可以使用Selenium或C# WebBrowser。这将完全自动化访问页面(您可以将C# WebBrowser设置为不可见),然后只需单击按钮以编程方式触发下载即可。
https://stackoverflow.com/questions/37648252
复制相似问题