ICIBA接口调研
访问ICIBA网站接口默认传参URL
接口传参意义,分析传参含义
callback:iciba JQuery回调函数形式返回到该网站
a=getWordMean:获取单词参数
c=search:查询单词参数
word:传递所需要的单词
list=1,2,3,4,5,8,9,10,12,13,14,15,18,21,22,24,3003,3004,3005
- 1参数显示基础单词信息,路径:JSON.baesInfo
- 2参数显示单词分析信息,路径:JSON.sameAnalysis
- 3柯林斯高阶英汉双解学习词典,路径:JSON.collins
- 4英英词典,路径:JSON.ee_mean
- 5行业词典,路径:JSON.trade_means
- 8双语例句,路径:JSON.sentence
- 9(1,9组合会出现网络释义,路径JSON.netmean),路径:JSON.baesInfo
- 10权威例句,路径:JSON.auth_sentence
- 12释义变形(此参数并没有显示在页面里),路径:JSON.synonym
- 14词组和句型,路径:JSON.phrase
- 15词根词缀,路径:JSON.stems_affixes
- 18百度百科,路径:JSON.encyclopedia
- 21四级真题,路径:JSON.cetFour
- 3003词性、中英例句、翻译并未在页面展示 ,路径:JSON.bidec
- 3005句式用法,路径:JSON.jushi
- 如果list不传参或者输入0默认显示所有信息
产品需求数据
- 输入单词:JSON.baesInfo.word_name
- 音标+翻译:JSON.baesInfo.symbols
- 变形:JSON.baesInfo.exchange
- 双语例句:JSON.sentence
- 句式用法:JSON.jushi
- 权威例句:JSON.auth_sentence
此时list参数传参值为:1,6,8,10,3005 ,减少无用参数,优化请求速度。
http://www.iciba.com/index.php?&a=getWordMean&c=search&list=1,6,8,10,3005&word=test
数据库设计
数据表名:dic_auth_sentence注释:权威例句表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 权威例句id | 主键 |
| content | varchar(255) | 内容 | |
| link | varchar(255) | 相关链接 | |
| source | varchar(50) | 来源 | |
| word_id | int(11) | 单词id |
数据表名:dic_base_info注释:音标表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 单词id | 主键 |
| word | varchar(128) | 单词 | |
| ph_en | varchar(255) | 英 音标 | |
| ph_am | varchar(255) | 美 音标 | |
| ph_en_mp3 | varchar(255) | 英 音标mp3 | |
| ph_am_mp3 | varchar(255) | 美 音标mp3 | |
| create_time | datetime | 创建时间 |
数据表名:dic_base_info_test注释: 音标表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 单词id | 主键 |
| word | varchar(128) | 单词 | |
| ph_en | varchar(255) | 英 音标 | |
| ph_am | varchar(255) | 美 音标 | |
| ph_en_mp3 | varchar(255) | 英 音标mp3 | |
| ph_am_mp3 | varchar(255) | 美 音标mp3 | |
| create_time | datetime | 创建时间 |
数据表名:dic_exchange注释: 单词变形表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| word_id | int(11) | 单词id | 主键 |
| word_pl | varchar(128) | 复数 | |
| word_past | varchar(128) | 过去式 | |
| word_done | varchar(128) | 过去分词 | |
| word_ing | varchar(128) | 现在分词 | |
| word_third | varchar(128) | 第三人称单数 | |
| word_er | varchar(128) | 比较级 | |
| word_est | varchar(128) | 最高级 | |
| word_prep | varchar(128) | 代词 | |
| word_adv | varchar(128) | 副词 | |
| word_verb | varchar(128) | 动词 | |
| word_noun | varchar(128) | 名词 | |
| word_adj | varchar(128) | 形容词 | |
| word_conn | varchar(128) | 系连词 |
数据表名:dic_jushi注释: 句式用法表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 句式用法id | 主键 |
| word_id | int(11) | 单词id | |
| english | varchar(255) | 英语例句 | |
| chinese | varchar(255) | 中文例句 |
数据表名:dic_parts注释:翻译表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 词性id | 主键 |
| word_id | int(11) | 单词id | |
| part | varchar(50) | 词性 | |
| means | varchar(255) | 释义 |
数据表名:dic_sentence注释:双语例句表
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 例句id | 主键 |
| word_id | int(11) | 单词id | |
| english | varchar(255) | 例句英文 | |
| chinese | varchar(255) | 例句中文 |
数据表名:dic_temp_word注释: 跑批单词
| 字段 | 数据类型 | 注释 | 类型 |
|---|---|---|---|
| id | int(11) | 单词id | 主键 |
| word | varchar(255) | 单词 | |
| is_set | tinyint(1) unsigned zerofill | 0未跑1跑过 |
JAVA实现方案
- HTTPUtils:请求接口,获取资源
1 | String url = "http://www.iciba.com/index.php&a=getWordMean&c=search&list=1,6,8,10,3005&word="; |
- Fastjson:解析获取到的JSON,找到所需要数据的路径
1 | JSONObject jsonObject = JSON.parseObject(res); |
- 遍历获取到的数据并存入MYSQL
1 | int wordId; |
Mapper
1 | //插入传入的单词 |
Python 实现方案
1 | import sys |
MySQL_util.py
1 | from config.settings import (MYSQL_DATABASE, MYSQL_HOST, MYSQL_PASSWORD, MYSQL_PROT, MYSQL_USER, MYSQL_CHARSET) |
使用Spring Boot 对Redis缓存单词
1 | package com.xxl.job.executor.mvc.controller; |
使用xxl-job调度中心执行
- Java :在xxl-job里运行模式选择Bean模式
使用Java版本在调度中心设置JobHandler执行器名称和,并执行器内添加注解1
- Python:使用GLUE(Python)模式
注:如果在Linux下Python有多个版本,可以在com.xxl.job.core.glue.GlueTypeEnum下修改脚本执行前缀,如:GLUE_PYTHON("GLUE(Python)", true, "python3.6", ".py")
GLUE(Python)模式代码:
1 | #!/usr/bin/python3.6 |
使用haipproxy匿名代理爬取
这个开源项目爬取一些免费的代理网站,获取代理IP地址,然后对这些IP进行筛选打分,打分策略针对各个IP请求成功率、响应速度、最近验证时间和是否匿名这四个维度。
这个项目的详细文档在github上的wiki里,我在配置一些Python环境和依赖踩了不少坑,为了用这个项目去特意学习了Python和Redis…
- 本文标题:爬取iciba.com的翻译数据
- 本文作者:Colorful_Ghost
- 创建时间:2018-03-24 15:33:05
- 本文链接:https://blog.iacg.moe/2018/03/24/爬取iciba-com的翻译数据/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!