起初是这个老哥再群里问这些数据怎么搞,让人帮忙用curl帮他抓取数据
说实话我也没干过这个,干的开发都是一键生成,现在干开发的成本太低了
我用了curl然后提示要伪造证书,然后也搞了
后面用最简单的这个方法
public function tzurl(){
$url = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com';
// 创建上下文
$context = stream_context_create([
'http' => [
'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36\r\n" .
"Referer: https://www.example.com\r\n"
]
]);
// 使用上下文发送请求
$response = file_get_contents($url, false, $context);
// 检查是否成功获取到数据
if ($response === false) {
// 处理获取数据失败的情况
$error = 'Failed to get data';
// 输出错误信息
echo json_encode(['error' => $error]);
} else {
$data = json_decode($response, true);
// 检查是否成功解析JSON数据
if ($data === null) {
// 处理解析JSON失败的情况
$error = 'Failed to parse JSON data';
// 输出错误信息
echo json_encode(['error' => $error]);
} else {
// 提取数据部分
$result = $data['data'];
// 将数据以JSON形式输出
echo json_encode($result);
}
}
}
然后就抓取成功了
这篇作为记录吧顺便把file_get_contents这个函数的各个参数都说一下
- 定义了一个URL变量,指定要请求的API接口URL。
- 创建了一个上下文(context),用于指定请求的header信息,包括User-Agent和Referer。
- 使用file_get_contents函数发送HTTP请求并获取响应数据,通过传入URL、false(表示不使用缓存)和上下文作为参数。
- 检查是否成功获取到数据,如果获取失败,则输出错误信息。
- 如果成功获取到数据,则将响应数据解析为JSON格式,并检查是否成功解析。
- 如果成功解析JSON数据,则提取其中的"data"部分,并将其以JSON形式输出。
- 如果解析JSON失败,则输出错误信息。