Python有道英译汉词典
选择有道翻译是因为相对好爬。
方案一
在词典网页中直接抓取词义。
参考资料: https://www.cnblogs.com/nkqlhqc/p/7627581.html
特点:比较简单易行,不需要涉及与网页的交互。
程序:
# 有道词典 英译汉
# 参考资料: https://www.cnblogs.com/nkqlhqc/p/7627581.html
# 关于re.compile(): https://www.cnblogs.com/nomorewzx/p/4203829.html
import requests # 抓取网页的第三方库
import re # 正则表达式的库print("来自有道词典,请输入需要查询的英语单词\n")
while (True):word = input(">>")url = "http://dict.youdao.com/w/"+word+"/#keyfrom=dict2.top"html = requests.get(url).content.decode('utf-8') # 访问网址try:partlist = re.findall('class="trans-container"(.*?)class="additional"', html, re.S) # 初步筛选except:print("没找到\n")else:reg1 = '<li>(.*?)</li>' # 模糊匹配,找<li>与</li>中间的部分 reg2 = re.compile(reg1) # 使得匹配更加高效try:wordlist = re.findall(reg2, str(partlist[0])) # 那串列表中的第一页是有效的except:print("没找到\n")else:for x in wordlist:print(" "+x)print("\n")
结果图:
程序1的结果图
另一个程序:
用了爱词霸网。
# 爱词霸词典 英译汉
# 参考资料: https://www.cnblogs.com/nkqlhqc/p/7627581.html
# 关于re.compile(): https://www.cnblogs.com/nomorewzx/p/4203829.html
import requests # 抓取网页的第三方库
import re # 正则表达式的库print("来自有道词典,请输入需要查询的英语单词\n")
while (True):word = input(">>")url = "http://www.iciba.com/"+wordhtml = requests.get(url).content.decode('utf-8') # 访问网址try:partlist = re.findall('<ul class="base-list switch_part" class="">(.*?)</ul>', html, re.S) # 初步筛选except:print("没找到\n")else:reg1 = '<span>(.*?)</span>' # 模糊匹配,找<li>与</li>中间的部分 reg2 = re.compile(reg1) # 使得匹配更加高效try:wordlist = re.findall(reg2, str(partlist))except:print("没找到\n")else:for x in wordlist:print(" "+x)print("\n")
结果图:
程序2的结果图
PS:程序中缩进太多,不好,python应多使用子函数。
方案二
使用POST向网页发送请求,避开反爬虫使用老版接口,即去掉url中的“_o”。
参考资料:
https://www.cnblogs.com/90zeng/p/python_translation.html(关于在哪里看POST的格式的)
http://blog.csdn.net/nunchakushuang/article/details/75294947(关于反爬虫)
http://blog.csdn.net/snszwh/article/details/78168660(关于老版接口)
特点:使用了POST进行网页交互,但放弃了反爬虫处理。
程序:
# 有道字典 英译汉
# 参考资料1: https://www.cnblogs.com/90zeng/p/python_translation.html
# 参考资料2:http://blog.csdn.net/nunchakushuang/article/details/75294947
# 参考资料3:http://blog.csdn.net/snszwh/article/details/78168660
import urllib.request
import urllib.parse
import json
import time
import random
import hashlib
import redef get_html(word):url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" # 重点是去掉这里的_odata = {}data['i'] = worddata['from'] = 'AUTO'data['to'] = 'AUTO'data['smartresult'] = 'dict'data['client'] = 'fanyideskweb'data['salt'] = '1519801903001'data['sign'] = 'ea1617dd1a4772cd6f47b45bab7c2a0f'data['doctype'] = 'json'data['version'] = '2.1'data['keyfrom'] = 'fanyi.web'data['action'] = 'FY_BY_CLICKBUTTION'data['typoResult'] = 'false'data = urllib.parse.urlencode(data).encode('utf-8')request = urllib.request.Request(url=url, data=data, method='POST')response = urllib.request.urlopen(request)result_str = response.read().decode('utf-8')return result_strdef main():word = input('>>')result_str = get_html(word)target = json.loads(result_str)trans = re.findall('tgt\': \'(.*?)\'', str(target))print(" "+ str(trans[0])+"\n") if __name__ == "__main__": print("来源:有道词典\n输入需要查询的词\n\n")while(True):main()
结果图:
程序3的结果图
方案三
这是涉及到反爬虫处理的一篇博客:http://blog.csdn.net/shadkit/article/details/79174948
Python有道英译汉词典相关推荐
- Web前端-----英译汉词典的实现
主程序:英译汉词典.html 子程序:demo.js
- python:mdict + bottle = web 查询英汉词典
pip install readmdict ; 参见:使用Python调用mdx字典文件进行查词 安装 Mdict 去 MDict pip install bottle mdict_bottle.py ...
- python:mdict + flask = web 查询英汉词典,汉英词典
pip install pinyin; pip install snownlp; pip install flask pip install readmdict ; 参见:使用Python调用mdx字 ...
- python爬虫之英汉互译(爬虫+pyqt5)
简单的爬虫与图形化界面的结合 源码转载自[https://blog.csdn.net/qq_38534107/article/details/90440403] 作者:耳森Paulson 在此十分感谢 ...
- python评分卡4_logistics原理与解法_sklearn英译汉
本系列分以下章节: python评分卡1_woe与IV值 python评分卡2_woe与IV分箱方法 python评分卡3_woe与IV分箱实现 python评分卡4_logistics原理与解法_s ...
- Python基础笔记_Day14_Python图形化界面、Python GUI、tkinter、Python英汉词典
Day14_Python图形化界面.Python GUI.tkinter.Python英汉词典 14.01_Python语言基础(Python实现英汉字典)(掌握) 14.02_Python语言基础( ...
- 通过游戏编程学Python(6)— 英汉词典、背单词
通过游戏编程学Python 通过游戏编程学Python(番外篇)- 乱序成语.猜单词 通过游戏编程学Python(5)- 猜成语(下) 通过游戏编程学Python(4)- 猜成语(上) 文章目录 通过 ...
- python:SL4A ecdict.py 英汉词典查询
安卓手机上安装 sl4a_r6.apk , 可以执行 python 2.6 . ecdict.py 英汉词典查询程序放在 sl4a/scripts/ # -*- coding: utf-8 -*- i ...
- java设计单词英译汉小助手_java课程设计——英汉电子词典编程
Java课程设计--英汉电子词典 一.需求分析 二十世纪后半叶,以电子计算机为代表的现代科学获得了突飞猛进的发展并迅速和人们的日常生活结合在一起.计算机技术的发展和进步也使电子语言词典的诞生成为可能. ...
最新文章
- C++核心编程(一)
- [翻译]使用HtmlAgilityPack更好的HTML分析和验证
- Visual Studio 2008/.NET Framework 3.5 WinForm窗体运用程序发布(部署)
- 学了半天,import 到底在干啥?
- 在MYSQL中输入net stop mysql没有反应?
- linux系统编程之进程概念(操作系统---管理,进程创建,进程状态,进程优先级, 环境变量,程序地址空间,进程O(1)调度方法)
- 会计的思考(37):“弱水三千,只取一瓢饮”--业务人员的财务意识
- java类成员变量初始化_Java类变量和成员变量初始化过程
- 隐藏文件的查看(Win/Linux/macOS)
- Windows下运行LSD-SLAM
- 多元微积分_向量函数偏导
- PDF文件旋转页面的简单方法
- python爬取今日头条图片
- 兼容IE8的文件下载,解决IE下载文本和图片直接打开问题
- 带着问题,再读ijkplayer源码
- webview里面的页面不能往下下拉(下拉卡死)解决
- 8021什么意思_ox004a8021 指令引用的 0x01ac1100内存 是什么意思?
- 常用API,基本类型包装类,日期类,异常,集合进阶,IO流,多线程
- 机器学习 | 变量选择
- voided redundant navigation to current location: “/xxxxxx“