comcn 发表于 2022-10-20 10:39

不懂就问,php curl求助

本帖最后由 comcn 于 2022-10-20 10:41 编辑

目标网址:https://www.aliyundrive.com/s/eLTrq8rJNmB/folder/62e32a7063a8ffeefb2e4e0dba497c82b148b5ed
我试了阿里网盘还有其他网址,curl只能获取“查看网页源代码”的内容,我想要获取F12中的所有dom元素,比如:



我的代码,基于tp


      public function index()
      {
         $headers = [
    "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
    "cookie:xxxxxxxxxxxxxx"];
                           $se=$this->curl('https://www.aliyundrive.com/s/eLTrq8rJNmB/folder/62e32a7063a8ffeefb2e4e0dba497c82b148b5ed',$headers);
                           dump($se);
      }

public function curl($url, $headers = [])
            {
                $header = ['User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'];
                $con = curl_init((string)$url);
                curl_setopt($con, CURLOPT_HEADER, false);
                curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($con, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($con, CURLOPT_ENCODING ,'gzip'); //加入gzip解析
                if (!empty($headers)) {
                  curl_setopt($con, CURLOPT_HTTPHEADER, $headers);
                } else {
                  curl_setopt($con, CURLOPT_HTTPHEADER, $header);
                }
                curl_setopt($con, CURLOPT_TIMEOUT, 5000);
                $result = curl_exec($con);
                return $result;
            }


运行结果:


我想要的:
比如我要获取页面中的“来晚啦,该分享已失效”,url输入一个网盘链接,判断是否失效,但是curl获取不到“来晚啦,该分享已失效”元素
请问是没有设置header头问题吗?另外有php curl教程视频吗,b站不知道哪个好?


归隐小赵 发表于 2022-10-20 10:46

case d.ShareErrorType.Cancelled:
                case d.ShareErrorType.Expired:
                case d.ShareErrorType.GlobalDisabled:
                  return "来晚啦,该分享已失效";

url:https://api.aliyundrive.com/adrive/v3/share_link/get_share_by_anonymous?share_id=eLTrq8rJNmB
type:post
data:{"share_id":"eLTrq8rJNmB"}

前后分离,通过ajax获取数据并渲染页面。调用接口取返回值

sweet520nana 发表于 2022-10-20 10:46

没搞懂你表达的是什么,还以为是分享来晚了能破呢

wshq 发表于 2022-10-20 14:10

curl获取的是服务器直接发回的数据而你想要的是 浏览器解析后的数据........:rggrg

comcn 发表于 2022-10-20 14:19

wshq 发表于 2022-10-20 14:10
curl获取的是服务器直接发回的数据而你想要的是 浏览器解析后的数据........

curl做不到浏览器解析后的数据吗

ytw6176 发表于 2022-10-20 14:21

你搞错方向了,直接请求接口就行,你这是下载前端页面。。。

页: [1]
查看完整版本: 不懂就问,php curl求助