使用PHP Curl获取TikTok个人主页返回空白结果该如何解决?
问题原因分析
- 你当前的CURL请求没有携带符合浏览器规范的HTTP请求头,TikTok的反爬机制会直接拦截无特征的爬虫请求,返回空响应
- 若使用的是中国大陆境内的服务器,TikTok域名在国内无法正常访问,也会导致请求超时/无返回
- 未开启CURL报错检查,无法定位具体错误原因
修复后的代码示例
<?php $url = "https://www.tiktok.com/@user_me"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 跳过SSL证书校验,避免证书验证失败问题 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 配置模拟浏览器的请求头 $headers = [ "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36", "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2", "Referer: https://www.tiktok.com/" ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 若使用海外代理可添加以下配置,替换为你自己的代理地址端口 // curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:7890'); // curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); $result = curl_exec($ch); // 打印错误信息方便排查 if(curl_errno($ch)){ echo 'CURL错误:' . curl_error($ch); } curl_close($ch); echo $result; ?>
额外注意事项
- 必须确保运行代码的服务器能正常访问TikTok服务,境内服务器需要配置海外网络代理
- TikTok的反爬策略会动态更新,若后续再次出现空返回,可更新请求头中的UA参数,或添加Cookie等更多请求头参数模拟真实浏览器请求
- 直接展示TikTok页面内容可能存在版权风险,建议提前确认相关使用规则
内容的提问来源于stack exchange,提问作者john gili
相关产品推荐
相关产品推荐

