我想检查一个复杂的网址,如果可能的话,可以使用某种类型的通配符。
URL可能是https://bliss-box.net/wp-content/uploads/某年 / 某月 / 4-play_GP_3.0_020.zip“
我正在使用它,但不确定如何预测或猜测它将位于的两个文件夹。
try
{
WebRequest req = WebRequest.Create("https://bliss-box.net/wp-content/uploads/2020/02/4-play_GP_3.0_020.zip");
WebResponse res = req.GetResponse();
MessageBox.Show("Url Exists");
}
catch (WebException ex)
{
MessageBox.Show("Url is Invalid");
}
URL是对Web服务器的指令。静态网址通常看起来像文件名,是该指令的一种特殊情况:“嘿,服务器,给我发这个所有者告诉您使用的文件系统中的文件。“
URL中的wp-content/year/mm/file
模式使您的服务器运行名为WordPress的Web应用程序变得简单。 WordPress将用户上传的媒体文件存储在与该模式匹配的文件结构中。每个月的上传文件都进入匹配的目录。
您希望程序发送到WordPress服务器的通配符指令是“嘿,服务器,请向我发送名为whatever的文件。我不知道它何时上传,因此请为我查找。”
WordPress是坚持原则,即用户必须知道文件名才能获取上载的内容。它不会提供目录列表。这会减慢网络蠕虫寻找要抓取的内容的速度。
[确实使有正当理由要做你想做的事情的人感到...颈痛。
因此,您的程序必须进行自己的搜索。您必须以上传日期范围开始,然后尝试该范围内每年/毫米组合的文件名。继续尝试使用URL,直到找到不产生404的URL。
您可能应该以最新到最旧的方式工作。
您绝对应该每隔几秒钟对程序进行一次速率限制。 WordPress具有安全性,可以减慢刮板速度,并且您不想出于合法目的而被列入黑名单。
如果需要在您控制的服务器上进行例行的大容量搜索,则可以考虑使用sftp而不是https。 sftp可以列出目录内容。