我想跟踪通过本地邮政服务发送的包裹:http://tandt.posta.sk/en.
通过跟踪信息,例如RF166699170SK,我可以定位包裹。
但当我想通过PHP(例如curl_setopt、file_get_contents或其他方法(阅读它时,我只阅读HTML代码,但在输出中缺少文本,例如"在邮局DlhéPole张贴的物品",我可以在页面上看到。
因为这个页面使用iframe和一些私有方法http://www.posta.sk/en/sps-embed#tnt?q=RF166699170SK
但当我尝试阅读此页面(iframe(时,会输出有关包裹的丢失信息,例如"在邮局DlhéPole张贴的物品"。
输出:
<!DOCTYPE html>
<html class="embed">
<head>
<link href="/sps/style.css?1450227250" media="screen,print" rel="stylesheet" type="text/css" />
<link href="/sps/print.css?1445466449" media="print" rel="stylesheet" type="text/css" />
<title>Slovenská pošta</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no">
<meta name="google" value="notranslate">
<script type="text/javascript">CONFIG={"api":"http://api.posta.sk/private","tntShare":{"en":"http://tandt.posta.sk/en/items/{number}","sk":"http://tandt.posta.sk/zasielky/{number}"},"lang":"sk","home":"http://www.posta.sk","embed":true}</script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script src="/sps/script.js?1457665771" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
//<![CDATA[
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
//]]>
</script><script type="text/javascript">
//<![CDATA[
try {
var pageTracker = _gat._getTracker("UA-9600731-1");
pageTracker._setDomainName("posta.sk");
pageTracker._initData();
pageTracker._trackPageview();
} catch(err) {}
//]]>
</script>
</body>
</html>
可以通过PHP或JavaScript阅读这个包裹吗?
如果您检查链接页面的网络连接,您可以看到一些数据是通过JSON请求加载的。在您的示例中,数据是从http://api.posta.sk/private/search?q=RF166699170SK&m=tnt
也许这将是直接从这个API获取数据的最简单方法,而不是试图解析结果。钥匙是一样的。您可以在php中转换响应,如下所示:
<?php
$packageKey = 'RF166699170SK';
$data = json_decode('http://api.posta.sk/private/search?q='.$packageKey.'&m=tnt', TRUE);
?>
但我不知道你们的邮政服务是否允许你应该问问是否禁止那样做
有一个开放的API可用于包跟踪。在这里,您可以找到更多信息和文档:https://www.posta.sk/informacie/api-dokumentacia
查询示例:http://api.posta.sk/tracking?l=en&p=1&q=RF166699170SK