【发布时间】:2017-06-01 18:13:38
【问题描述】:
https://api.cinelist.co.uk/get/times/cinema/10565
此链接为我提供了电影院正在播放该特定电影的标题和时间的 json 列表。我想获取该信息并将其转换为字符串,但这怎么可能?我用过 json_decode,它说节点列表是空的。
这是我的代码:
function odeon(){
$client = new Client();
$crawler = $client->request('GET', 'https://api.cinelist.co.uk/get/times/cinema/10565');
//print $crawler->text()."\n";
json_decode($crawler);
print_r($crawler);
}
【问题讨论】:
-
print_r(json_decode($crawler)); -
它说 json_decode 需要一个字符串,而不是得到一个对象
-
DomCrawler 对象似乎没有任何方法可以转储完整的响应数据。如果你要使用 Guzzle,那么你可以这样做
print_r(json_decode((string) $crawler->getBody()));。 -
那么我怎么能用 guzzle 做同样的功能呢?我已经安装了它,但我无法弄清楚
-
喜欢这个stackoverflow.com/a/44266346/5892849 来自您的其他问题。只需将结果传递给 json_decode。您应该先尝试阅读一些教程以了解刮板的工作原理并阅读 Guzzle 的文档。您似乎在不了解基础知识的情况下试图实现太多目标,这从您之前的问题中可以明显看出。我的建议是阅读 Guzzle 文档。然后使用 symfony 的
DomCrawler组件来抓取 html。您可以使用 json_decode 将 json 响应直接转换为数组或对象。
标签: laravel laravel-5 guzzle goutte