采集金山词霸每日一句一言Api
Api官方接口
每日:http://open.iciba.com/dsapi/
查指定时间:http://sentence.iciba.com/index.php?c=dailysentence&m=getdetail&title=2018-11-06&_=1541655200812
杨小杰Apis:https://wiki.yum6.cn/docs/apis/wiki
搭建采集接口
<?php
header("Content-type: text/html; charset=utf-8"); //设置编码 utf-8
$t1 = microtime(true);
$utime = date("Y-m-d");//api的尾缀时间
$translation = '0';//翻译语句,0不采集,1采集
$content = '1';//英语版,0不采集,1采集
//使用curl提高运行速度 不用动
function httpGet($url) {$curl = curl_init();$httpheader[] = "Accept:*/*";$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";$httpheader[] = "Connection:close";curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );curl_setopt($curl, CURLOPT_HTTPHEADER, $httpheader);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_TIMEOUT, 3);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($curl, CURLOPT_URL, $url);$res = curl_exec($curl);curl_close($curl);return $res;
}
$myfile = fopen("iciba.txt", "a+");//创建文件保存抓取的句子
//循环次数 2018-7-31 至现在日期相差的天数
for ($i=1; $i<100; $i++) { $json_string =httpGet('http://sentence.iciba.com/index.php?c=dailysentence&m=getdetail&title='.$utime.'&_='.time());//curl 自定义函数访问api$data= json_decode($json_string,true);//解析json 转为phpif (isset($data['note'])) {$text1= $data['note']."\n"; fwrite($myfile, $text1);}if (isset($data['translation'])&&$translation==1) {$text2= str_replace('小编的话:', '', $data['translation'])."\n";fwrite($myfile, $text2);}if (isset($data['content'])&&$content==1) {$text3= $data['content']."\n"; fwrite($myfile, $text3);}$utime= date("Y-m-d",strtotime("-".strval($i)." day")); //每循环一次 当前日期减去循环变量
}
fclose($myfile);
$t2 = microtime(true);
echo 'ok,耗时'.round($t2-$t1,3).'秒';?>
运行这个接口能采集到之前100天的。
一言接口
<?php
//获取句子文件的绝对路径
//如果你介意别人可能会拖走这个文本,可以把文件名自定义一下,或者通过Nginx禁止拉取也行。
$path = dirname(__FILE__);
$file = file($path."/iciba.txt");//随机读取一行
$arr = mt_rand( 0, count( $file ) - 1 );
$content = trim($file[$arr]);//编码判断,用于输出相应的响应头部编码
if (isset($_GET['charset']) && !empty($_GET['charset'])) {$charset = $_GET['charset'];if (strcasecmp($charset,"gbk") == 0 ) {$content = mb_convert_encoding($content,'gbk', 'utf-8');}
} else {$charset = 'utf-8';
}//格式化判断,输出js或纯文本
if (isset($_GET['encode'])&&$_GET['encode'] === 'js') {header('Content-type: text/javascript;charset=utf-8'); echo "function iciba(){document.write('" . $content ."');}";
} else {echo $content;
}
每日采集接口
<?php
header("Content-type: text/html; charset=utf-8"); //设置编码 utf-8
$utime = date("Y-m-d");
$file_data = 'data.txt';
if(!file_exists($file_data)){fopen($file_data, "w");
}
$str = file_get_contents('data.txt');
$d=date('Y/m/d H:i',strtotime($str));$translation = '0';//翻译语句,0不采集,1采集
$content = '1';//英语版,0不采集,1采集
//请更改监控key 默认iciba
if($_GET['p']==='iciba'){
//判断今天是否已爬if(strtotime($utime)>strtotime($d)){
//爬虫开始
//使用curl提高运行速度 不用动
function httpGet($url) {$curl = curl_init();$httpheader[] = "Accept:*/*";$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";$httpheader[] = "Connection:close";curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );curl_setopt($curl, CURLOPT_HTTPHEADER, $httpheader);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_TIMEOUT, 3);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($curl, CURLOPT_URL, $url);$res = curl_exec($curl);curl_close($curl);return $res;
}
//定义写入函数
function myfile($txt){$myfile = fopen("iciba.txt", "a+");fwrite($myfile,$txt);fclose($myfile);
}$json_string =httpGet('http://open.iciba.com/dsapi/');//curl 自定义函数访问api
$data= json_decode($json_string,true);//解析json 转为php
//2018-4-11之前只有一条数据 so 加判断
if (isset($data['note'])) {$text1= $data['note']."\n"; myfile($text1);
}if (isset($data['translation'])&&$translation==1) {$text2= str_replace('小编的话:', '', $data['translation'])."\n";myfile($text2);
}
if (isset($data['content'])&&$content==1) {$text3= $data['content']."\n"; myfile($text3);
}
$myfile = fopen("data.txt", "w");
fwrite($myfile,$utime);
fclose($myfile);
echo "ok";
//爬虫结束
}else{echo "已爬";
}
}else
echo "老铁 搞事情吗";
?>
之后可以把这个每日采集接口使用宝塔计划监控为每日采集即可。
ps:多的图文介绍也就不多说了,查看采集毒鸡汤的文章即可。
采集金山词霸每日一句一言Api相关推荐
- Python爬取金山词霸每日一句,存储到MySQL中
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/7/3 20:25 # @Author : baoshan # @Site : ...
- python中年大叔学编程_中年大叔学编程-我用Python保存金山词霸每日一句
其实金山词霸每日一句已经出来很久了,但是我都不知道,今天去金山词霸的官网看了看,感觉这些句子都挺不错的,所以就想着把它们给存下来. 我大概看了一下他的页面,请求的敏感数据是加密的,页面是基于请求的数据 ...
- 每日一句api Android,Android 图文数据JSON解析,金山词霸每日一句API的调用
数据格式为 {"sid":"737", "tts":"http:\/\/news.iciba.com\/admin\/tts\/2 ...
- 金山词霸每日一句开放平台 .NET demo
先附上地址:http://open.iciba.com/?c=api 小金山提供了2种获取数据的方式 1. 通过填入自己的网站名称.网址.邮箱地址 来生成一段javascript脚本,直接将生成的代码 ...
- android 类似金山词霸 每日一句源代码 csdn,个人作业2——英语学习APP案例分析(示例代码)...
第一部分 调研, 评测 软件:微软必应词典(Android客户端) 版本:5.5.2 第一次上手体验: 整体界面上还算简洁,功能也算完全,但是并没有什么特别吸引我的地方.就我个人而言,如果不是这次作业 ...
- python 爬虫 金山词霸每日一句 优美的文段中英文爬取自编
效果: 代码: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/11/29 14:42 # @Author : huni # ...
- 每日一句api Android,金山每日一句 API 接口调用接入方法
原标题:金山每日一句 API 接口调用接入方法 金山每日一句 API 大家都听说过吧,金山每日一句 API 每次刷新网页都会带来一个新的语句,现在盒子部落公布金山每日一句 API 接口,可以直接在自己 ...
- 获取每日一句,每天发给女朋友。
分享给未来程序员的进阶代码:这个代码是给微信指定的好友(女朋友)发送好句,应该可以提高他(她)对你的好感,而且这个脚本可以打包成可执行程序(xxx.exe),放在专门挂机的服务器上就会每天发一次. 注 ...
- python--实现微信自动回复机器人和定时发送每日一句与天气预报
目录 关于wxpy 安装wxpy 利用机器人实现微信自动回复 获取金山词霸每日一句 获取天气预报数据 定时发送每日一句与天气预报 结束 关于wxpy wxpy其实是通过微信网页版的api实现对微信的一 ...
- 使用Python实现微信群发每日一句
我在自己教学的四个班里建了三个微信群,每个群大约有50-90人.我计划每天给学生双送双语每日一句,既让学生坚持学习英语,也传递给他们正能量,在后疫情时代保持积极向上.奋发有为的状态.然而,从拷贝金山词 ...
最新文章
- 实现费用管理 mysql_电信资费管理系统的设计与实现(NetBeans,MySQL)
- JVM 调优实战--JVM的运行参数及jinfo查看运行参数信息
- GreenPlum的并行查询优化策略
- java中.of,java中instanceof的用法
- 判断相等_为什么不建议你用a.equals(b)判断对象相等
- 使用计算机打印汉子文档,电子科技大学《计算机应用基础(本科)》20春期末考试【标准答案】...
- 从数组中取值,并且比较字符串的值
- 管理学大师彼得 德鲁克
- ubuntu svn命令
- Excel读取mysql数据库
- 公路通用复化辛普森公式匝道点位坐标计算4800源程序
- PSINS源码阅读—STIM300/GNSS组合导航
- Sketch Less for More: On-the-Fly Fine-Grained Sketch Based Image Retrieval (CVPR 2020 Oral)
- 最小函数值(minval)
- python编程的缩进什么意思_编程缩进是什么意思
- Codecademy网学习Python第六天
- GitHub 创建工程及clone 和 push
- linux英文字典,linux终端下的英文字典--SDCV(转)
- python filter和map的区别_js中filter和map的区别
- Linux工具篇 | Ubuntu安装Python包管理工具pip3
热门文章
- Dump+mysql导入_mysql mysqldump导入数据库
- 基于MK802 MiniPC的扩展开发应用-系统自制
- vtuber面部捕捉工具_如何做一名VTuber?一个VUP就足够
- 微信小程序_(2022)微信小程序开发者后台管理登录/开发成员管理/开发设置中设置(云)服务器/数据拉取权限配置/appID查看/邮箱修改
- 回溯算法之迷宫问题(Maze)
- 每日英语-2018.12.3
- 爬虫抓取暗黑3国服天梯榜数据及分析
- numpy不对等切分数组
- 华为云文件夹服务器,华为云空间服务器在哪个文件夹
- Android直接回复通知