php - 通过 php 自动下载 Azure ServiceTags
问题描述
我需要从 PHP 脚本下载 Azure Public ServiceTag JSON。不幸的是,下载需要手动步骤(AWS 提供通过其网络直接下载 json 文件)。
下载链接如下:https ://www.microsoft.com/en-us/download/confirmation.aspx?id=57064
希望有些人知道如何点击下载链接..
提前致谢!
解决方案
如果您可以像@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);
推荐阅读
- http - 如何判断一个网站是FTP还是HTTP?
- android - 为我的应用启用和禁用系统键盘
- nss - nspr 4.19 PR_GetEnvSecure 函数的 nss 3.35 问题
- scala - 为什么这个 List[String] 到数据框会在 Spark Scala 中引发 NullPointerException?
- database - 有没有一些技术可以用来读取程序相关的自定义文件,然后像内存数据库一样管理自定义数据?
- python - 用于检查任何函数注释类型的装饰器
- php - 为什么当 array_sum() 值为 1 时 PHP 在 if 条件下返回 false?
- android - 是否有像 Activity 启动模式这样的 Fragment 启动模式?
- java - 如何将字节或流写入 Apache Camel FTP 以传输文件
- php - SMS Reminder 保留在 php 中的服务器端