从具有更改U​​RL的网站下载文件的Powershell方法?

时间:2016-04-23 19:03:43

标签: powershell

我的任务涉及每天从网站下载单个文件。我们称之为" https://test.example.com"。我有凭据允许我登录该站点,然后Flash界面显示可供下载的文件。下载文件后,将以各种方式处理该文件。我已经把Powershell放在一起处理所有这些,我只是很难自动实际下载文件。

我在观看网络活动时使用Flash界面下载了一些文件,发现它实际上是从这个URL中提取文件:

  

https://test.example.com/link/EBDB7F67EF3B28XX99NCAD9920160423/file.zip

因此,我能够把它放在一起,以便通过我的PS脚本自动获取文件:

$url = 'https://test.example.com/link/EBDB7F67EF3B28XX99NCAD9920160423/file.zip'
$output = "C:\Downloads\file.zip"

Invoke-WebRequest -Uri $url -OutFile $output  

然而,URL中的长串数字每天都在变化。我能找到的唯一可辨别的模式是最后八位数始终是特定文件发布的日期。

有没有好办法解决这个问题?我一直在尝试使用通配符和模式,以及检查HTML可以过滤的元素,但我很难找到正确的解决方案。

1 个答案:

答案 0 :(得分:0)

这很难实现自动化。除非是专门为此设计的,否则您无法从脚本中驱动Flash。我现在看到你唯一的选择是:

  1. 如果可能,请联系网站开发人员,也许他们可以为您提供有关生成链接的功能的详细信息。这给了我一个想法 - 也许你可以反向设计Flash代码来自己找到这个功能细节。使用flash反编译器。
  2. 模拟浏览Flash网站的用户。这可以通过以下方式之一完成:
    • Autohotkey - 您可以记录相对于浏览器窗口的鼠标点击并再次执行脚本。除非Flash接口过于动态且不可预测,否则它将起作用。
    • Sikuli - 另一种依赖于图片片段识别的自动化语言。
  3. 以上所有2. *方法都会产生易碎的自动化代码,因为它们依赖于浏览器设置(缩放,主题)甚至操作系统设置。因此,您需要专门为此设备专用(虚拟机ofc)。在PowerShell中反编译flash代码并重新实现url generting代码将使其成为可靠的100%。

    正如有人在评论中所说,这不是powershell queestion而是浏览器自动化问题。