【发布时间】:2017-04-15 23:00:43
【问题描述】:
我正在使用 YQL (https://developer.yahoo.com/yql/),但每个应用程序限制(由您的访问密钥标识):每天 100,000 次调用和每个 IP 限制:/v1/public/:每小时 2,000 次调用; /v1/yql/:每小时 20,000 个电话。
我需要无限制的查询。如何使用 XPath 提取 HTML,如使用 php 的 YQL。
$homepage = file_get_contents('https://google.com');
$dom = new DOMDocument();
$dom->loadHTML($homepage);
$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->evaluate('div') as $childNode) {
$result .= $dom->saveHtml($childNode);
}
var_dump($result);
我刚刚从网上找到了这个例子,但没有用。
编辑
$homepage = file_get_contents('https://google.com');
$dom = new DOMDocument();
$dom->loadHTML($homepage);
$xpath = new DOMXPath($dom);
$result = '';
foreach($xpath->query('//a[@class="touch"]') as $childNode) {
// if output <a class="touch" href="url"><span alt="demo1" title="title2">Content</span> some</a> , How to get href/url and child tag span attribute alt/title ?
$result .= $dom->saveHtml($childNode);
}
var_dump($result);
如果可能的话,如何使用 php 像 yql 一样将完整的 HTML 提取到 json/xml 中?
【问题讨论】:
-
使用 $xpath->query() 获取所需的节点。
-
查看更新的问题@Borna
-
我没有看到新的 ^^
-
我需要像 yql(json/xml) 这样的输出。如何获得?
-
为什么在 json 中需要它?你不能只解析 dom 来获取特定数据吗?