在 Goutte 库中进行了非常深入的搜索后,我找到了一种方法并想分享。因为 Goutte 是一个非常强大的库,但是文档非常复杂。
通过(Goutte > Guzzle)解析 JSON
只需获取所需的输出页面并将 json 存储到数组中。
$client = new Client(); // Goutte Client
$request = $client->getClient()->createRequest('GET', 'http://***.json');
/* getClient() for taking Guzzle Client */
$response = $request->send(); // Send created request to server
$data = $response->json(); // Returns PHP Array
通过 (Goutte + Guzzle)使用 Cookie 解析 JSON -用于身份验证
发送请求站点的页面之一(主页看起来更好)以获取 cookie,然后使用这些 cookie 进行身份验证。
$client = new Client(); // Goutte Client
$crawler = $client->request("GET", "http://foo.bar");
/* Send request directly and get whole data. It includes cookies from server and
it automatically stored in Goutte Client object */
$request = $client->getClient()->createRequest('GET', 'http://foo.bar/baz.json');
/* getClient() for taking Guzzle Client */
$cookies = $client->getRequest()->getCookies();
foreach ($cookies as $key => $value) {
$request->addCookie($key, $value);
}
/* Get cookies from Goutte Client and add to cookies in Guzzle request */
$response = $request->send(); // Send created request to server
$data = $response->json(); // Returns PHP Array
我希望它有所帮助。因为我几乎花了 3 天时间来了解 Gouttle 及其组件。