Python爬虫学习第一记 (翻译小助手)
1 # Python爬虫学习第一记 8.24 (代码有点小,请放大看吧)
2
3 #实现有道翻译,模块一: $fanyi.py
4
5 import urllib.request
6 import urllib.parse
7 import json
8
9 # word 是将要传入的翻译的内容
10
11 def fanyi(word):
12 while 1:
13 # 去掉url中的 _o 可以解决反爬虫机制
14 url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
15 data={} # 定义一个data字典
16
17 data['i']= word #don't del
18 data['doctype']='json' #don't del
19
20 #data['from']='AUTO'
21 #data['version']='2.1'
22 #data['keyfrom']='fanyi.web'
23 #data['ue']='utf-8'
24 #data['typoResult']='true'
25
26 # 对数据进行编码处理
27 data=urllib.parse.urlencode(data).encode('utf-8')
28
29 # 创建一个res对象,把url和data传进去,并且同时打开这个请求,并且需要注意的使用的是POST请求
30 res = urllib.request.urlopen(url,data)
31 # 进行读取数据并且进行解码操作
32 html=res.read().decode('utf-8')
33 tar=json.loads(html)
34
35 # 返回值为t,也就是翻译之后的内容
36 t=tar['translateResult'][0][0]['tgt']
37 return t
38
39 #初步完成,使用示例:t = fanyi('hello')
------BTLord 小白工作室
以上是第一个模块,接下来将引用以上的这个模块,利用easygui来创建简单图形用户界面
1 # 翻译的小助手 $ 8.27 爬虫(GUI简单界面)
2 import easygui as g
3 import sys
4
5 import fanyi # 添加翻译模块
6
7 while 1:
# 弹出一个对话编辑框
8 ret=g.enterbox('请输入您想要翻译的内容:\n (输入为空将退出程序)','欢迎来到BTL小白工作室')
# 判断用户点击情况,并且执行相应内容
9
10 if ret==None:
11 sys.exit(0) # 判断点 × 和取消 键的情况,如果是,退出程序
12
13 t=fanyi.fanyi(ret)
14 # 弹出一个选择框,返回值为1或0
15 if g.ccbox(t,choices=("继续翻译","不了/(ㄒoㄒ)/~~")):
16 t=fanyi.fanyi(ret)
17 else:
18 sys.exit(0)
19
20 # 翻译的小程序到此,告一段落,(为什么是 小 程序呢,因为它只能翻译少许内容,具体多少呢,嘿嘿嘿!)
这两个文件必须在同一个目录,才可以执行。
附上程序图 :
2020-08-27 -BTL 小白工作室