说明文档地址:http://open.iciba.com/?c=wiki&t=cc

先用php封一个curl爬取页面的方法:

/** @param string $url get请求地址* @param int $httpCode 返回状态码* @return mixed*/
function curl_get($url, $httpCode = 0) {
//    初始化$ch = curl_init();
//    爬取url地址curl_setopt($ch, CURLOPT_URL, $url);
//    不将爬取内容直接输出而保存到变量中curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//部署在Linux环境下改为true
//    模拟一个浏览器访问https网站curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//    设定连接时间curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);//执行获取内容$file_contents = curl_exec($ch);$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);curl_close($ch);return $file_contents;
}

在封一个可以通过音频连接将音频读取并保存到本地的方法

function save_music($type,$file_url)
{$file_name = $type."/".uniqid().".mp3";
//    $pic_url = "http://res.iciba.com/resource/amp3/1/0/34/d1/34d1f91fb2e514b8576fab1a75a89a6b.mp3";$file_read_fd = fopen($file_url, "r");$file_write_fd = fopen($file_name, "w");$file_content = "";while(!feof($file_read_fd)){$file_content .= fread($file_read_fd, 1048576);}fwrite($file_write_fd, $file_content);fclose($file_read_fd);fclose($file_write_fd);return $file_name;
}

然后先调用接口获取信息,通过正则拿出详细信息,存入数据库和保存本地服务器:

//收集音标set_time_limit(0);$mysql = new db();$result = $mysql->sql_select('SELECT * FROM dictionary WHERE id > 7703');foreach ($result as $a => $b){$url = sprintf("http://dict-co.iciba.com/api/dictionary.php?w=%s&key=your_key",$b['word']);//爬取结果$result = curl_get($url);//从结果提取音标和音频的连接保存数组$rr = preg_match('/[a-zA-Z]+\s.*\s.*\s.*\s\<ps\>(.*)\s\<pron\>(.*)\s\<ps\>(.*)\s\<pron\>(.*)\s/',$result,$results);//预处理去掉标签和空格$en_symbol=preg_replace("/[\r\n\s]/","",strip_tags($results[1]));$en_symbol=preg_replace("/[']/","ˈ",$en_symbol);if ($en_symbol == "" || !$rr) continue;$en_symbol_mp3=preg_replace("/[\r\n\s]/","",strip_tags($results[2]));//保存音频$url1 = save_music($b['type'],$en_symbol_mp3);$us_symbol=preg_replace("/[\r\n\s]/","",strip_tags($results[3]));$us_symbol=preg_replace("/[']/","ˈ",$us_symbol);$us_symbol_mp3=preg_replace("/[\r\n\s]/","",strip_tags($results[4]));$url2 = save_music($b['type'],$us_symbol_mp3);//调用自己封装的方法更新数据库$mysql->update('dictionary',['phonetic_symbol_en' => $en_symbol,'phonetic_symbol_us' => $us_symbol,'pronunciation_en' => $url1,'pronunciation_us' => $url2,],['id' => $b['id']]);
}

以上就是全流程

PHP 调用金山词霸API获取音标和音频相关推荐

  1. 前端js调用后端API获取数据的三种方法(2022.7.25)

    前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...

  2. JavaScript调用原生API获取手机型号

    跨平台技术简介 针对原生开发面临问题,人们一直都在努力寻找好的解决方案,而时至今日,已经有很多跨平台框架,根据其原理,主要分为三类: H5+原生(Cordova.Ionic.微信小程序) JavaSc ...

  3. 进阶1·调用高德API获取交通数据(多个URL访问,字典提取,while无限循环下的程序间断运行)

    调用高德开放API获取实时交通数据 想法及思路 现在大型网站都提供了好多开放API,根据这些开放API可以做一些比较有趣的东西,本次调用高德开放api实时获取你想知道的道路拥堵状况 工具及技术: Py ...

  4. js调用高德API获取所在当前城市

    可以在js代码中直接调用API接口,获取所处当前城市信息,代码如下: <script type="text/javascript">function getCurren ...

  5. vue 地理位置定位_Vue 通过调用百度API获取地理位置-经度纬度省份城市

    一.首先在百度api注册获得ak密钥 二.新建js文件,我命名为loadBMap.js,里面创建script,代码如下: /** * 加载地图 * @param {Function} callback ...

  6. Python调用微博API获取微博内容

    一:获取app-key 和 app-secret 使用自己的微博账号登录微博开放平台(http://open.weibo.com/),在微博开放中心下"创建应用"创建一个应用,应用 ...

  7. 调用ins api获取个人照片信息

    最近想要把ins获取到的个人照片信息放到博客中去,没想到ins的api还有一点坑,记录一下. 注册client 为了获取个人信息,我们首先就是要获取token,获取token之前,需要先注册一个cli ...

  8. 调用雅虎API获取全球天气

    雅虎官方API文档: https://developer.yahoo.com/weather/documentation.html 雅虎获取授权key网址(免费获取): https://develop ...

  9. Android 调用原生API获取地理位置和经纬度,判断所在国家

    public static boolean isCN(Context context) {TelephonyManager tm = (TelephonyManager) context.getSys ...

  10. python调用zabbixapi接口_python调用zabbix api获取主机信息

    import requests import json headers = { 'Content-Type': 'application/json' } class GetZabbix: def __ ...

最新文章

  1. leetcode算法题--叶值的最小代价生成树
  2. OAuth 2 开发人员指南
  3. (原创)Android6.0亮屏流程之Keyguard Window绘制
  4. 学习笔记-------两阶段提交 2PC
  5. Android使用软引用和弱引用
  6. java两个数最大公约数和最小公倍数_java中请给出例子程序:找出两个数的最大公约数和最小公倍数...
  7. 【三维路径规划】基于matlab改进粒子滤波无人机三维路径规划【含Matlab源码 1269期】
  8. 一阶惯性环节的性能分析——自动控制原理基础补充(二)
  9. 数据结构——八大排序算法(面试必备)
  10. JS基础知识大总结史上最全(已完结~)
  11. python if .for 等函数
  12. 彻底了解Cookie
  13. python对excel中需要的数据的单元格填充颜色
  14. tp服务器有什么作用,tp路由器虚拟服务器能干嘛
  15. 汉字对应的unicode编码
  16. Vue 表情输入组件,微信face表情组件
  17. 记一次徐宗本院士的讲座——大数据分析技术图谱与研究举例
  18. Win7-64 重装 Anaconda3
  19. mipi摄像头linux,VS-RK3399 在linux系统下面调试Mipi camera接口介绍
  20. c log 指定服务器,解决 SQL2000安装程序配置服务器失败。参考服务器错误日志和C:\WINDOWS\sqlstp.log方法...

热门文章

  1. 基于python语言设计的词云定制器
  2. 辛意云教授讲《论语》
  3. Promise中then的返回值
  4. 【分享】品牌平面广告创意过程与思维技巧
  5. java之httpclient
  6. php codesniffer 代码规范,PHP_CodeSniffer自定义代码规范规则
  7. php7.4 ffi,PHP7.4中FFI的介绍(代码示例)
  8. 接入网、承载网、核心网是什么,交换机路由器是什么、这个和网络的协议有什么关系呢?
  9. 用人话说说文明和文化
  10. Leslie cheung's Speech