首页 > 解决方案 > 通过 php 自动下载 Azure ServiceTags

问题描述

我需要从 PHP 脚本下载 Azure Public ServiceTag JSON。不幸的是,下载需要手动步骤(AWS 提供通过其网络直接下载 json 文件)。

下载链接如下:https ://www.microsoft.com/en-us/download/confirmation.aspx?id=57064

希望有些人知道如何点击下载链接..

提前致谢!

标签: phpazurecurl

解决方案


如果您可以像@Satya V's answer中那样使用适当的api来做到这一点,那么它是比网络抓取更好的解决方案,但是如果您无权使用api(似乎您需要一个subscriptionId,无论如何,使用api ),

您可以使用 XPath 获取下载链接//a[contains(.,'click here to download manually')]

这似乎有效:

<?php
$ch = curl_init();
curl_setopt_array($ch,array(
    CURLOPT_URL=>"https://www.microsoft.com/en-us/download/confirmation.aspx?id=57064",
    // setting CURLOPT_COOKIEFILE to emptystring enables the cookie engine.
    CURLOPT_COOKIEFILE=>"",
    CURLOPT_RETURNTRANSFER=>1,
));
$html=curl_exec($ch);
$domd=new DOMDocument();
@$domd->loadHTML($html);
$xp=new DOMXPath($domd);
$download_url = $xp->query("//a[contains(.,'click here to download manually')]")->item(0)->getAttribute("href");
//var_dump($download_url);
curl_setopt_array($ch,array(
    CURLOPT_RETURNTRANSFER=>0,
    CURLOPT_URL=>$download_url
));
curl_exec($ch);

推荐阅读