手把手教学--Python爬取有道词典

本篇文章做法参考了https://www.bilibili.com/video/av4050443/?p=55这个视频中的方法,并在此基础上加以修改,最终实现的结果如下:
在这里插入图片描述
在爬取有道词典之前,我们应该先打开有道词典的网址:http://fanyi.youdao.com/ , 然后 右键检查—>network—>translate 一项
在这里插入图片描述
然后在有道翻译界面输入要翻译的内容,点击翻译,在上述路径下就可以看到自己想要翻译的东西:
在这里插入图片描述
现在跳到Headers的地方,然后滚动到最下面,可以看到有一个Form Data的地方,这个下面展示了许多的数据,这些数据就是你在点击翻译的时候浏览器给服务器发送的数据:
在这里插入图片描述
针对这个东西,我们使用列表对其进行保存,并使用’utf-8’的方式进行解码_(因为在headers中信息告诉我们用utf-8)_。然后使用Python里面的urllib.request()模块对进行导入,接下来对导入的内容进行读取,读取的时候也使用“utf-8”进行解码。使用json对最后的解码结果进行再次的提取,将我们想要的信息提取出来*(这里的内容参考上面给的链接视频中的讲解)。*
整个程序的设计思路是,在while(true)循环里运行,当输入为特定值的时候,程序break跳出循环,否则程序将一直作为翻译器运行下去。
附上代码:

import urllib.request as ur
import urllib.parse
import json
while(1):
    content = input("请输入需要翻译的内容:")
    if(content !='我想结束了'):
        url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#        url_new = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
        data={}
        data['i'] = content
        data['type'] = 'AUTO'
        data['smartresult']='dict'
        data['client'] = 'fanyideskweb'
        data['salt'] = '15434915589221'
        data['sign'] = '46726cf43402922bd5500ad9c839ed5c'
        data['ts'] = '1543491558922'
        data['bv'] = 'db1af4c4f5ec7235b96c7182eecd9573'
        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')
        response = ur.urlopen(url,data)
        html = response.read().decode('utf-8')

        target = json.loads(html)
        print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))
    else:
        print("大爷下次继续来玩啊")
        break

有道OS:天天拿我练手做测试,我不要面子的啊???

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值