爬虫入门经典(一) | 一文教你用Spider制作简易的翻译工具

2020-10-30 14:03发布

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

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

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

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

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

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

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

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

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

二. 编写思想

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

  •  1.首先我们需要设置一个请求头,使其模拟成浏览器,这算是最基本的反扒手段

headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
    }123
  •  2.发送post请求,获取json,并将其转成字典

    #发送post请求
    response = requests.post(url=url,params=params,headers=headers)
    #获取返回内容,这里是json,获取json数据转字典
    content = response.json()
    #获取数据
    print(content)123456

8

  •  3. 获取单词意思

print(content["data"][0]["v"])1

9

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

  •  1. 原始程序

#!/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"])123456789101112131415161718192021222324252627
  •  2.基本封装的程序

#!/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 requestsdef 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()12345678910111213141516171819202122232425262728293031323334353637383940
  •  3. 运行结果图

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

转载自:CSDN   作者:不温卜火

原文链接:https://blog.csdn.net/qq_16146103/article/details/108964249