我正在尝试自动从网站下载文件。通常要下载文件,我使用用户名和密码登录。导航到特定屏幕,然后单击按钮。
我一直在尝试使用 Chrome 的开发人员模式查看 POST 的序列,然后使用 .Net WebClient 类复制所有步骤,但没有成功。我从 WebClient 类派生并添加了 cookie 处理。这似乎工作。我转到登录页面并使用 WebClient.UploadValues 发布。大约一半的时间它似乎工作。下一步似乎是对报告 URL 执行另一个 POST 操作。我再次使用 WebClient.UploadValues,但来自服务器的响应是显示内部错误的页面。
我有一些问题。1) 有没有比手工编写 C# 代码更好的工具来复制一堆 Web 浏览器交互?我真的只关心能够在每天的特定时间将文件下载到 Windows 机器上。2) WebClient 似乎不是用于此的最佳类。可能有点过于简单化了。我尝试使用 HttpWebRequest,但它没有编码 POST 请求的工具。还有其他建议吗?3) 虽然 Chrome 的开发者插件似乎显示了所有交互,但我觉得使用起来有点麻烦。我有兴趣查看所有原始通信(尽管未加密,该站点仅通过 https 访问),因此我可以查看我是否真的在复制所有步骤。
我什至可以发布我正在使用的确切代码。我从中提取数据的网站,特别是标准普尔网站。他们能够创建自定义报告来下载我需要报告的历史数据,而不是重新发布。