如何使用PHP爬虫类抓取API接口数据?
<?php
// 引入GuzzleHttp客户端类
require 'vendor/autoload.php';
use GuzzleHttp\Client;
class ApiCrawler {
private $client;
public function __construct() {
// 初始化GuzzleHttp客户端
$this->client = new Client([
'base_uri' => 'https://api.example.com', // 替换为目标API接口的URI
'timeout' => 5.0, // 设置请求超时时间
]);
}
public function crawl($endpoint, $params = []) {
// 发送GET请求到指定的API端点
$response = $this->client->request('GET', $endpoint, [
'query' => $params, // 请求参数
]);
// 获取响应体并解码为数组
$data = json_decode($response->getBody()->getContents(), true);
return $data;
}
}
// 使用示例
$crawler = new ApiCrawler();
$data = $crawler->crawl('/data', ['param1' => 'value1', 'param2' => 'value2']);
print_r($data); // 打印获取到的数据
这段代码使用了GuzzleHttp客户端库来简化HTTP请求的过程。首先,我们创建了一个ApiCrawler
类,其中包含了一个构造函数来初始化GuzzleHttp客户端,以及一个crawl
方法用于发送HTTP GET请求并获取API响应。在crawl
方法中,我们通过GuzzleHttp客户端的request
方法发送请求,并通过getBody
方法获取响应体。最后,我们使用json_decode
将JSON格式的响应体解码为PHP数组。
评论已关闭