超简单爬虫使用requests模块+有道云翻译,python实现翻译小功能

前言

最近隔壁小张找到我

“老王,最近我在学英语,不想想再打开网页翻译了,太麻烦了一直要开着网页”

“那你可以下载客户端吗,不是挺方便的嘛?”

“老王,我家电脑你又不是不知道,本来就是老款,这么多软件开着不是卡升天了?”

“那行,超简单利用python的requests模块利用网易有道云制作一个翻译小功能”

什么不想打开网页翻译

靓仔用requests模块啊

准备

  • python
    • python官方网址:https://www.python.org/
  • 安装python requests模块,json模块
    • requests模块 命令行窗口下输入 pip install requests
    • json模块 python自带不需要安装

搞快点

  1. 需要在有道翻译中查找我们爬虫所需要的url以及post表单

    1. 打开有道云词典翻译网页,F12进入开发者模式,点击NetworkXHR

    2. 输入小张学习资料并点击翻译,查看此时发现一条有请求
      获取url和post表单1

    3. 点击请求,右侧会弹出菜单栏,我们重点就看Headers以及Preview
      image-20200817000423493

    4. 先点击Headers查看.

      • General中的RequestURL就是我们需要的待请求url
      • 下拉后可以看到Form Data中的所有数据就是我们需要的post表单

      url

      post表单

      • 由此我们获得了

        url:
        http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
        post表单:
        i: 日本经典动作片
        from: AUTO
        to: AUTO
        smartresult: dict
        client: fanyideskweb
        salt: 15975896029404
        sign: af9c79eff66d919c9ed6f1a526781fca
        lts: 1597589602940
        bv: 9ef72dd6d1b2c04a72be6b706029503a
        doctype: json
        version: 2.1
        keyfrom: fanyi.web
        action: FY_BY_REALTlME
        
    5. 接下来看Preview,这是网页返回的json格式数据这其中就包含了我们需要的翻译,可以简单的理解为字典,但是需要用json模块来解码.

      • 有道云返回的json格式是词典嵌套列表的这样一个格式

      • 那么从这里面我们可以得到所需要的翻译在返回的词典中是这样的一个位置

        trans_dict["translateResult"][0][0]["tgt"]
        

      Preview

    6. 接下来就是代码环节了想想我们的流程

      • 使用input输入需要翻译的文本
      • 提交post请求到url
      • 接受返回的json数据
      • 解析json数据提取出翻译结果
      • 打印翻译结果
      • 外面套一个循环以及加上退出选项
      import json
      import requests
      
      
      # 7.循环
      while True:
      
          # 1.控制台获取等待翻译文本
          content=input("输入中文:")
      
          # 8.退出
          if content == "":
              print("输个什么玩意?爷退了")
              exit()
      
          # 2.设定待请求url
          # 有道云坏的很加了个_o防止爬虫
          # url="http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
          url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
      
          # 3.建立post表单
          post_form={
          "i": content,
          "from": "AUTO",
          "to": "AUTO",
          "smartresult": "dict",
          "client": "fanyideskweb",
          "salt": "15975710195066",
          "sign": "1c7317b4699d018e5ae031c0077d7b80",
          "lts": "1597571019506",
          "bv": "9ef72dd6d1b2c04a72be6b706029503a",
          "doctype": "json",
          "version": "2.1",
          "keyfrom": "fanyi.web",
          "action": "FY_BY_REALTlME",
          }
      
          # 4.提交post请求
          # response接受返回的json格式
          response=requests.post(url, data = post_form)
      
          # 5.接受相应结果,解析提取
          trans_json = response.text
          trans_dict=json.loads(trans_json)
          trans_text=trans_dict["translateResult"][0][0]["tgt"]
      
          # 6.打印翻译结果
          print("翻译结果:%s" % trans_text)
      
      
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值