php与python技术分享 php与python技术分享
  • PHP 相关
  • Python 相关
  • 综合内容
  • 工具箱
  • 登录
首页 › PHP 相关 › 长尾词、相关词、下拉词在线挖掘小工具

长尾词、相关词、下拉词在线挖掘小工具

新程序
2025-05-07 12:03:40
本文摘要 DeepSeek
本文介绍了一个纯 PHP 实现的" 以词挖词" 工具,通过整合百度、Bing、搜狗等搜索引擎的推荐词接口,结合 OpenAI 接口实现关键词扩展功能。工具提供两种查询模式:1 层查询获取精确长尾词,2 层查询获取更广泛的相关词 (推荐使用)。查询结果会自动标记重复词并统计次数。核心代码展示了通过 CURL 调用各 API 接口、处理不同格式返回数据 (JSON/字符串解析)、错误重试机制及编码转换等关键技术实现,最终返回去重后的关联词列表。该方案适用于 SEO 关键词挖掘等场景,具有较好的兼容性和容错性。

长尾词、相关词、下拉词在线挖掘小工具-php与python技术分享

还是纯 php 实现,利用百度推荐词、bing 推荐词、搜狗推荐词等接口结合 openai 接口实现以词挖词功能

使用说明:

  • 1 层查询:获取关键词的长尾词,精确词。
  • 2 层查询:获取关键词的长尾词+相关词,较为广泛。(建议使用 2 层)
  • 查询结果中重复词会用黄色标记并显示重复次数

核心代码示例:

function getRelatedKeywords($keyword, $apiUrls, $maxRetries = 2, $timeout = 5) {
    $relatedKeywords = [];
    foreach ($apiUrls as $apiUrl) {
        $attempt = 0;
        while ($attempt < $maxRetries) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $apiUrl . urlencode($keyword));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
            $response = curl_exec($ch);

            if (curl_errno($ch)) {
                error_log('Curl error for ' . $apiUrl . ': ' . curl_error($ch));
                curl_close($ch);
                $attempt++;
                sleep(1);
                continue;
            }
            curl_close($ch);

            if ($response === false || empty($response)) {
                error_log('API ' . $apiUrl . ' returned empty response.');
                $attempt++;
                continue;
            }

            if (strpos($apiUrl, 'bing.com') !== false) {
                $start = strpos($response, '{');
                $end = strrpos($response, '}');
                if ($start !== false && $end !== false) {
                    $jsonData = substr($response, $start, $end - $start + 1);
                    $data = json_decode($jsonData, true);
                    if (json_last_error() === JSON_ERROR_NONE && is_array($data) && isset($data['AS']['Results'])) {
                        foreach ($data['AS']['Results'] as $result) {
                            if (isset($result['Suggests']) && is_array($result['Suggests'])) {
                                foreach ($result['Suggests'] as $suggest) {
                                    if (isset($suggest['Txt'])) {
                                        $relatedKeywords[] = $suggest['Txt'];
                                    }
                                }
                            }
                        }
                    } else {
                        error_log('Invalid JSON or structure for ' . $apiUrl);
                    }
                }
            } elseif (strpos($apiUrl, 'so.360.cn') !== false) {
                $data = json_decode($response, true);
                if (json_last_error() === JSON_ERROR_NONE && is_array($data) && isset($data['result'])) {
                    foreach ($data['result'] as $result) {
                        if (isset($result['word'])) {
                            $relatedKeywords[] = $result['word'];
                        }
                    }
                } else {
                    error_log('Invalid JSON or structure for ' . $apiUrl);
                }
            } elseif (strpos($apiUrl, 'baidu.com') !== false) {
                $response = mb_convert_encoding($response, 'UTF-8', 'GBK');
                $start = strpos($response, '["');
                $end = strrpos($response, '"]');
                if ($start !== false && $end !== false) {
                    $subStr = substr($response, $start + 2, $end - $start - 2);
                    $parts = explode('","', $subStr);
                    foreach ($parts as $part) {
                        if (!empty($part)) {
                            $relatedKeywords[] = $part;
                        }
                    }
                } else {
                    error_log('Invalid data format for ' . $apiUrl);
                }
            }
            break;
        }
    }
    return array_unique($relatedKeywords);
}

 

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
0
在线版网页扒站小工具,纯 php 实现
上一篇
纯 PHP 实现利用 openai 接口挖词功能
下一篇

猜你喜欢

  • 纯 php 无数据库实现在线购物网站、发卡平台功能
  • 纯 php 无需数据库实现蜘蛛池外租平台功能,含 usdt 在线充值回调
  • php 实现网站备份功能,一件备份目标网站至本地
  • 纯 PHP 实现利用 openai 接口挖词功能
  • 在线版网页扒站小工具,纯 php 实现

新程序

11
文章
0
评论
21
获赞

全站搜索

专题展示

纯 php 无数据库实现在线购物网站、发卡平台功能
2025-05-09 9:40:41
纯 php 无需数据库实现蜘蛛池外租平台功能,含 usdt 在线充值回调
2025-05-08 8:09:30
php 实现网站备份功能,一件备份目标网站至本地
2025-05-08 8:01:58

最近发布

  • 纯 php 无数据库实现在线购物网站、发卡平台功能
  • 纯 php 无需数据库实现蜘蛛池外租平台功能,含 usdt 在线充值回调
  • php 实现网站备份功能,一件备份目标网站至本地
  • Python 单文件实现根据关键词利用 openai 等接口批量写文章
  • 纯 PHP 实现利用 openai 接口挖词功能
Copyright © 2025 php 与 python 技术分享.
现在登录
  • PHP 相关
  • Python 相关
  • 综合内容
  • 工具箱