You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP提取特定域名链接异常求助:目标链接未被抓取

问题分析与解决方案

原代码的问题点

  • 仅提取<source>标签的src属性,但目标链接https://fs1.pdisk.pro:183并不在该标签中
  • 使用file_get_contents获取页面内容时,可能因服务器反爬策略或请求头缺失无法拿到完整内容
  • 最后重复调用json_encode,导致输出的是JSON字符串的二次编码结果,不符合预期格式

修正后的实现方案

步骤1:改用CURL获取页面内容(更稳定)

添加请求头模拟浏览器访问,避免被目标服务器拦截。

步骤2:提取目标域名的所有链接

通过字符串匹配筛选出包含fs1.pdisk.pro:183的所有链接,不受限于特定HTML标签。

步骤3:输出指定格式的JSON,可选实现跳转

如果需要自动跳转,可在输出JSON前添加Location头(需确保无任何前置输出)。

完整代码示例

function extractPdiskLinks($url) {
    // 初始化CURL
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 模拟浏览器请求头,避免被拦截
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    ]);
    // 执行请求获取HTML内容
    $html = curl_exec($ch);
    curl_close($ch);

    if (!$html) {
        return json_encode(['error' => 'Failed to fetch page content']);
    }

    // 匹配所有包含目标域名的链接
    $pattern = '/https?:\/\/fs1\.pdisk\.pro:183[^"\']+/';
    preg_match_all($pattern, $html, $matches);
    
    $links = array_unique($matches[0]); // 去重处理
    $result = [];

    if (!empty($links)) {
        // 返回第一个匹配到的链接,符合{"url":"link"}格式
        $result['url'] = reset($links);
        
        // 可选:自动跳转到目标链接(取消注释即可启用,需确保无前置输出)
        // header("Location: " . $result['url']);
        // exit;
    } else {
        $result['error'] = 'No matching links found';
    }

    return json_encode($result);
}

// 指定目标页面URL
$targetUrl = 'http://pdisk.investro1.com/how-to-buy-life-insurance-online-qfevac8cq8x4.html';
// 提取链接并输出结果
echo extractPdiskLinks($targetUrl);

代码说明

  • 用CURL替代file_get_contents,添加浏览器UA头提升请求成功率
  • 通过正则表达式匹配目标域名链接,无需依赖特定HTML标签结构
  • 自动对链接去重,避免重复结果
  • 输出严格符合要求的JSON格式,无匹配结果时返回错误提示
  • 可选开启自动跳转功能,只需取消注释header相关代码

内容的提问来源于stack exchange,提问作者Legend Akshay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:22:35