记一次thinkphp的使用,file_get_contents抓取数据

起初是这个老哥再群里问这些数据怎么搞,让人帮忙用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这个函数的各个参数都说一下

  1. 定义了一个URL变量,指定要请求的API接口URL。
  2. 创建了一个上下文(context),用于指定请求的header信息,包括User-Agent和Referer。
  3. 使用file_get_contents函数发送HTTP请求并获取响应数据,通过传入URL、false(表示不使用缓存)和上下文作为参数。
  4. 检查是否成功获取到数据,如果获取失败,则输出错误信息。
  5. 如果成功获取到数据,则将响应数据解析为JSON格式,并检查是否成功解析。
  6. 如果成功解析JSON数据,则提取其中的"data"部分,并将其以JSON形式输出。
  7. 如果解析JSON失败,则输出错误信息。

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值