大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—​​不温不火​​​,本意是​​希望自己性情温和​​​。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!
爬虫入门经典(一) | 一文教你用Spider制作简易的翻译工具_Spider



​PS:由于现在越来越多的人未经本人同意直接爬取博主本人文章,博主在此特别声明:未经本人允许,禁止转载!!!​



目录


  • 推荐
  • 一. 获取百度翻译的请求接口
  • 二. 编写思想
  • 三. 原始程序及封装修改程序


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


推荐

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

  ♥各位如果想要交流的话,可以加下QQ交流群:974178910,里面有各种你想要的学习资料。♥

  ♥欢迎大家关注公众号【不温卜火】,关注公众号即可以提前阅读又可以获取各种干货哦,同时公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍1份哟~♥

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

嗯!请原谅博主最近的不守时。至于原因嘛~ 由于前段时间的疯狂透支,现在博主真的有点相形见绌了。有句话完美验证了博主如今的情况:真的一滴也没有了 -。- 在此,博主只想说:少年不知xx贵,老来望x空流泪啊 ! 啊不好意思开车了 0.0

虽然精力有所不济,可能更新速度会比以往有所下降。但是博主在此保证,断更是不可能的,这辈子都不可能断更的。这段时间可能会先暂停更新​​Scrapy_Spider​​部分,先更新​​Spider_Web​​的一些小demo给大家,至于为什么暂停更新​​Scrapy_Spider​​这一部分?别问,问就是沉淀 -。-

哈哈哈,好了,废话不再多说。下面正片开始… …


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

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

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

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

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

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

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

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

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

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

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

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

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

从上图中我们可以很容易的看出​​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",
}
  • 2.发送post请求,获取json,并将其转成字典
#发送post请求
response = requests.post(url=url,params=params,headers=headers)
#获取返回内容,这里是json,获取json数据转字典
content = response.json()
#获取数据
print(content)

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

  • 3. 获取单词意思
print(content["data"][0]["v"])

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

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

  • 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"])
  • 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 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. 运行结果图

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

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


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


  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请​​“点赞” “评论”“收藏”​​一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了​​关注​​我哦!