前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文教你用Spider制作简易的翻译工具

一文教你用Spider制作简易的翻译工具

作者头像
不温卜火
发布2020-10-28 17:21:37
4270
发布2020-10-28 17:21:37
举报
文章被收录于专栏:不温卜火不温卜火

在开始进行制作简易的翻译工具之前,我们需要先明确我们用那个翻译的接口。

博主本次所选择的是百度翻译的接口。

下面为百度翻译的网址:https://fanyi.baidu.com/

但是,我们通过查看网页结构,我们发现这个网址并不是我们所需要的,那么我们就需要寻找接口了。

3
3

一. 获取百度翻译的请求接口

  • 1.打开浏览器 F12 打开百度翻译网页源代码
4
4

如果出现上图情况,我们多输几次就能够出现https://fanyi.baidu.com/sug。如下图:

5
5
  • 2. 从方法为POST的请求中找到参数为:kw:hi(hi是输入翻译的内容)
6
6
7
7

从上图中我们可以很容易的看出data是一个列表,里面存储的为键值对,并且里面有好几个单词及含义,而只有第一个是我们所需要的,那么我们就可以去第一个键值对的值即可即:["data"][0]["v"])

二. 编写思想

既然找到了接口,那么接下来就要分析需要如何编写代码了,编写代码一般需要以下几步:

  • 1.首先我们需要设置一个请求头,使其模拟成浏览器,这算是最基本的反扒手段
代码语言:javascript
复制
headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    }
  • 2.发送post请求,获取json,并将其转成字典
代码语言:javascript
复制
    #发送post请求
    response = requests.post(url=url,params=params,headers=headers)
    #获取返回内容,这里是json,获取json数据转字典
    content = response.json()
    #获取数据
    print(content)
8
8
  • 3. 获取单词意思
代码语言:javascript
复制
print(content["data"][0]["v"])
9
9

三. 原始程序及封装修改程序

  • 1. 原始程序
代码语言:javascript
复制
#!/usr/bin/env python
# encoding: utf-8
'''
  @author 李华鑫
  @create 2020-10-06 11:23
  Mycsdn:https://buwenbuhuo.blog.csdn.net/
  @contact: 459804692@qq.com
  @software: Pycharm
  @file: baidu翻译.py
  @Version:1.0
  
'''
import requests

url = "https://fanyi.baidu.com/sug"
data = {
    "kw":input(">")
}
headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
}
#发送post请求
response = requests.post(url=url,data=data,headers=headers)
#获取返回内容,这里是json,获取json数据转字典
content = response.json()
#获取数据
print(content["data"][0]["v"])
  • 2.基本封装的程序
代码语言:javascript
复制
#!/usr/bin/env python
# encoding: utf-8
'''
  @author 李华鑫
  @create 2020-10-06 11:23
  Mycsdn:https://buwenbuhuo.blog.csdn.net/
  @contact: 459804692@qq.com
  @software: Pycharm
  @file: baidu翻译.py
  @Version:1.0
  
'''
import requests
def baidufanyi():

    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    }
    #发送post请求
    response = requests.post(url=url,params=params,headers=headers)
    #获取返回内容,这里是json,获取json数据转字典
    content = response.json()
    #获取数据
    # print(content)
    print('*'*100)
    print(content["data"][0]["v"])
    # 遍历打印出所有的查询的单词及相近单词和注释
    # for k in content["data"]:
    #     print(k["k"],k["v"])
    print('*' * 100)


if __name__ == '__main__':
    while True:
        # sug有些不出现,这时候需要多输入些内容
        url = "https://fanyi.baidu.com/sug"
        params = {
            "kw": input("请输入单词:")
        }
        baidufanyi()
  • 3. 运行结果图
10
10

美好的日子总是短暂的,虽然还想继续与大家畅谈,但是本篇博文到此已经结束了,如果还嫌不够过瘾,不用担心,我们下篇见!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 获取百度翻译的请求接口
  • 二. 编写思想
  • 三. 原始程序及封装修改程序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档