用python爬取有道翻译
众所周知python作为一个优秀的语言,在爬虫方面一直是一个不可或缺的语言,今天我分享一个简单的例子 用python模拟网站接口爬取有道翻译
首先准备工作 安装request库 安装教程就不出了 csdn 上面教程很多
准备工作完成之后我们开始进入我们的主题:对有道翻译发起攻势
传送门
首先我们要知道爬取一个网页首先需要找到他的url 如何正确找到他的url很重要 我们打开网页后 按F12进入开发者模式(这里我用的是谷歌浏览器) 然后在输入框内输入想要翻译的单词
找到这个标签 复制这个url 代码如下:
import requests
import json
count = input("请输入你要翻译的内容: ")
url = "https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
然后我们定义一个空的字典 然后定义字典的几个属性 : 属性就在上图的下面 From Data 几个属性就不一一介绍了 相信各位聪明的同学一定懂的什么意思了
data = {}
data["i"] = count
data["from"] = "AUTO"
data["to"] = "AUTO"
data["smartresult"] = "dict"
data["client"] = "fanyideskweb"
data["doctype"] = "json"
data["version"] = "2.1"
data["keyfrom"] = "fanyi.web"
data["action"] = "FY_BY_REALTlME"
然后对获取的信息进行打印输出,列入输入信息“你好”:获取到的信息如下 {“type”:“ZH_CN2EN”,“errorCode”:0,“elapsedTime”:0,“translateResult”:[[{“src”:“你好”,“tgt”:“hello”}]]} 其实就是第一张图中Response里面的内容
data = requests.get(url, data)
html = data.text
print(html)
其实到了这里,爬取翻译已经结束了 ,但是这样看起来非常的麻烦,那么我们进行简单的解析:
targets = json.loads(html)
result = targets["translateResult"][0][0]["tgt"]
print("翻译的结果是:%s" % result)
这样我们就获得了一个比较正常的翻译了
完整代码如下
import requests
import json
count = input("请输入你要翻译的内容: ")
url = "https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
data = {}
data["i"] = count
data["from"] = "AUTO"
data["to"] = "AUTO"
data["smartresult"] = "dict"
data["client"] = "fanyideskweb"
data["doctype"] = "json"
data["version"] = "2.1"
data["keyfrom"] = "fanyi.web"
data["action"] = "FY_BY_REALTlME"
data = requests.get(url, data)
html = data.text
targets = json.loads(html)
result = targets["translateResult"][0][0]["tgt"]
print("翻译的结果是:%s" % result)
第一次写文章没有什么经验,希望大家多多包涵 有错误的地方希望大家指出。
|