使用有道获取单词同根词及词根
本帖最后由 麦田孤望者 于 2020-3-19 13:09 编辑二更
示例(无GUI版 就是源码执行长这样)↑
示例2(有GUI版 成品和源码发到网盘)↑
暂时没做词性
欢迎大佬继续打磨程序
还有因为GUI版我是用了Pyqt5所以源码太多了所以我就没在这里展示
但是源码和成品都在网盘里需要的自行下载
(有GUI版那个源码双击main.py就可以,那里面我写的注释也很详细)
无GUI版源码:
import re
import requests
#作者:吾爱破解论坛 麦田孤望者
#创建会话这样不用每次都获取cokie 也能提升访问速度
res = requests.session()
#list2是用来存储获取到的同根词及其汉语的列表
list2 = []
def finda(tx1,tx2,tx3):
return re.findall(re.compile('{}(.*?){}'.format(tx1,tx2),re.S),tx3)
#搜索函数
def sec(headers,url):
#list1是用来存放数据的,里面是元组,格式是(同根词链接,词义,单词)
#同根词链接用于稍后二次搜索同根词用
list1 = []
#获取数据
r = res.get(url,headers=headers)
#过滤数据
html = finda('<div id="relWordTab"','</div>',r.text)
#判断能否找到,不能找到则返回空列表
if html != []:
html = html#找到的话就提取元素(列表里一共只有一个元素)
else:
return []
#继续过滤
html = finda('<p','/p>',html)
#遍历列表,获得每个词的链接,词义和单词
for i in html:
#print(i)
href = finda('href="','"',i)
txt = finda('</span>','<',i).strip()
word = finda('relword">','</a>',i)
#存到列表里
list1.append((href,txt,word))
#因为列表的第一项(也可以说是第0项)是词根,所以从第二项开始遍历
for i in list1:
#去重(list2的作用就是这个)
if (i,i) not in list2:
print(i,i)
list2.append((i,i))
#返回list1 一会弄词根用
return list1
def main():
#这一段用于获取部分必要的cookie
r = res.get('http://www.youdao.com/')
cookie = '; '.join(finda('<Cookie ',' for',str(r.cookies)))
#获取要查询的单词
kw = input("请输入单词")
#加到url里
url = 'http://www.youdao.com/w/eng/{}/'.format(kw)
#cookie加到请求头里
headers = {
'Host': 'www.youdao.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36',
'Cookie': cookie
}
#第一次搜索同根词,返回列表
list1 = sec(headers,url)
#检查是否是空列表(因为之前找不到的话就返回空列表)
if list1 == []:
print('未找到')
else:
for i in list1:
kw = i
url = 'http://www.youdao.com/w/eng/{}/'.format(kw)
sec(headers,url)
print('词根:',list1)
if __name__ == '__main__':
main()
#使程序不至于结束运行之后立马消失,input等待输入,在按下回车之前程序是暂停的不会结束
input()
成品及源码网盘链接:
链接:https://pan.baidu.com/s/1E2Z8niwWmh5cooTUhb7m6Q
提取码:3pxo
来都来了给个评分呗
这个方面的小工具好像没什么人做,大多数都集成在词典或是学习软件里面了。整个界面清爽的挺好,谢谢楼主分享。 46~55行那个循环是因为有道它一个单词同根词不太全
所以就每个同根词再查找一遍同根词
去重之后就是了 链接呢,怎么下载 有创意~希望大佬们继续打磨 可以的,功能再强大一点就好了,最好做个界面。 fly-陌路 发表于 2020-3-18 17:22
链接呢,怎么下载
是需要exe文件吗?那我今天封装一下 对对封装一下谢谢我很需要{:1_921:} fly-陌路 发表于 2020-3-19 13:49
对对封装一下谢谢我很需要
封装好了奥 谢谢谢谢{:1_921:}