赞
踩
最近在学英语,找了麦克米伦7000词跟着慢慢背单词,一开始Google翻译,柯林斯词典找英译词解释,tatoeba找例句三个网站来回跳,后来找到有道词典大概整合了我对发音例句英译的需求。于是就想着能不能爬取一下7000词的例句和音标等数据方便查阅或者用来做一个小网页demo来练习
这里面单词发音链接
,音标
,英译
,例句
是我需要的内容。
打开开发者工具一看是个post请求,那就不方便用jsonp的方式跨域get请求资源了。(因为本来想着用前端做的)
# 查询词典返回
dict_api = 'https://dict.youdao.com/jsonapi_s?doctype=json&jsonversion=4'
扔到JSON在线视图查看器(Online JSON Viewer) (bejson.com)里看一眼[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8tdSsWBY-1659862543326)(https://img2022.cnblogs.com/blog/1674552/202208/1674552-20220807010519329-1269403918.png)]
在json内找到需要的内容,那么只需要确认一下需要的参数就可以了。这里使用在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具,JSON模拟请求 (sojson.com)先模拟测试
于是api需要的参数也捣鼓明白了,接下来编写python测试一下。
这里用典中典的requests模块
import requests import json query_word = 'abolish' res = requests.post(url='https://dict.youdao.com/jsonapi_s', data={ 'q':query_word, 'le':'en' }) res_json = json.loads(res.text) phonetic_symbol = res_json['simple']['word'][0] colins_entries = res_json['collins']['collins_entries'][0]['entries']['entry'] sents = res_json['blng_sents_part']['sentence-pair'] print(phonetic_symbol,colins_entries,sents)
把爬取到的内容解析成json
测试了一下没什么问题,但是json数组接着细分取需要的值可能会出问题。音标例句应该还好,柯林斯英译会把不同词性列出来,偶尔还附带个参照seeAlso需要处理一下
测试的时候顺便发现了提取例句的方式
q:'lj:acquaintance'
api还是那个api,查询的单词加上lj:
的前缀就可以获取全部的例句
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。