Python进阶----在线翻译器(Python3的百度翻译爬虫)

目录

一、此处需要安装第三方库requests:

二、抓包分析及编写Python代码

1、打开百度翻译的官网进行抓包分析。

2、编写请求模块

3、输出我们想要的消息

三、所有代码如下:


一、此处需要安装第三方库requests:

在Pycharm平台终端或者命令提示符窗口中输入以下代码即可安装

python 复制代码
pip install requests

二、抓包分析及编写Python代码

1、打开百度翻译的官网进行抓包分析

  1. 打开百度翻译的官网
  2. 按下F12键,打开开发者界面
  3. 此时由于翻译页面没有数据传输,属于静态页面,开发者界面也就没有任何数据传输的情况
  4. 在单词输入框中输入单词cat
  5. 在开发者界面中可以看到有数据正在进行传输(百度翻译是局部刷新,也就是Ajax框架的异步加载)
  6. 在过滤器中输入sug(sug是服务器响应给客户端的数据)
  7. 这里可以看到有3条sug,这是因为单词是由三个字母所组成的:
  • 第一个sug是输入c,服务器所响应的消息,里面携带翻译c数据,在data中可以看到

  • 第二个sug是输入ca,服务器所响应的消息,里面携带翻译ca数据,在data中可以看到

  • 第三个sug是输入cat,服务器所响应的消息,里面携带翻译cat数据,在data中可以看到

  • 如下图所示:

  • 展开第三个sug中的data,可以看到翻译的数据如下: 可以看到

  • 里面除了有单词cat的翻译,还有其相似单词的翻译。
  • 其中data为字典类型,k和v是key值,k为单词,v为翻译。
  • 此处就是我们所需要的信息了
  • 我们需要的是输入的完整单词的sug,故此处需要的是第三个sug。

2、编写请求模块

此处有两种方式编写,第一种是借助第三方网站的方式编写,第二种为自己抓包分析的方式编写。

第一种方式:此种方式比较小白,不利于对爬虫的学习。

  • 借助第三方网站(Convert curl commands to code

    (1)选中需要的输入的完整单词的sug,右键鼠标复制为cURL(bash)

  • (2)打开第三方网站,复制。选择Python,即可得到请求的Python代码。

    (3)复制Python代码,到Pycharm中。

  • 此处已经帮我们把请求头书写完了,但需要注意的是data中的kw的值为cat。也就是只翻译cat的请求信息,此处我们希望通过键盘输入需要翻译的单词来进行请求翻译。故需要进行一点修改:

    python 复制代码
    keyword = input("请输入需要翻译的单词:")
    data = {
            'kw': keyword
    }

    这样就可以通过键盘来输入单词进行翻译
    第二种方式:此种是自己通过抓包分析后,自己编写请求头模块,利于对爬虫的学习。

  • requests请求模块有get方法和post方法,此处使用的是post方法。(不清楚的可以百度一下)

  • post方法里面包含多个参数(不写的话requests模块会有默认的参数),里面需要自己写明三个参数。分别为url(访问地址),header(请求头),data(请求数据)

  • 通过抓包分析我们可以知道以上三个参数:

url所在位置:

header所在位置:

可以把header中的信息全部复制,以字典的类型封装为请求头。但此处只需要使用到一个关键信息--User Agent(用户身份认证),也可以只将这一个关键信息放入header中。

data所在位置:

这里我们只需要用到kw信息,将其放入到data中,以字典的形式进行存入即可。

此处的代码书写为:

python 复制代码
# 1、导入请求模块
import requests
# 将url地址复制过来
url = "https://fanyi.baidu.com/sug"
# 2、通过键盘输入需要翻译的单词
keyword = input("请输入需要翻译的单词:")
# 3、请求数据即为输入需要翻译的单词
data = {
        'kw': keyword
}
# 4、header请求头装入了user---angent信息
header = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'
}
# 5、使用post,按照url,header,data顺序依次写入数据
response = requests.post(url=url, headers=header, data=data)

3、输出我们想要的消息

此时,response里面所有的内容就是我们在抓包分析过程中sug中的视图内容。找到我们所需要的信息,对其进行打印即可。

  • 如果只要翻译所输入的单词,不需要拓展其相关单词的翻译。
python 复制代码
# a、如果只需要翻译单词,不需要其他相关单词及其翻译
# 将response变成字典形式并提取data中的信息
res = response.json()['data']
# 我们需要的信息是data中的第一行数据,找到后对其进行打印
print(res[0]['k']+"\t"+res[0]['v'])
  • 如果既要翻译所输入的单词,又需要拓展其相关单词的翻译。
python 复制代码
# b、如果需要翻译单词,还需要其他相关单词及其翻译
# 将response变成字典形式并提取data中的信息
res = response.json()['data']
# 通过循环读取res中的k和v的值即可
for x in res:
    print(x['k']+"\t"+x['v'])

三、所有代码如下:

python 复制代码
# 1、导入请求模块
import requests
# 将url地址复制过来
url = "https://fanyi.baidu.com/sug"
# 2、通过键盘输入需要翻译的单词
keyword = input("请输入需要翻译的单词:")
# 3、请求数据即为输入需要翻译的单词
data = {
        'kw': keyword
}
# 4、header请求头装入了user---angent信息
header = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Mobile Safari/537.36'
}
# 5、使用post,按照url,header,data顺序依次写入数据
response = requests.post(url=url, headers=header, data=data)
# print(response)
# # 6、输出我么想要的信息
# # a、如果只需要翻译单词,不需要其他相关单词及其翻译
# # 将response变成字典形式并提取data中的信息
# res = response.json()['data']
# # 我们需要的信息是data中的第一行数据,找到后对其进行打印
# print(res[0]['k']+"\t"+res[0]['v'])
# b、如果需要翻译单词,还需要其他相关单词及其翻译
# 将response变成字典形式并提取data中的信息
res = response.json()['data']
# 通过循环读取res中的k和v的值即可
for x in res:
    print(x['k']+"\t"+x['v'])

运行以上代码即可(注:运行代码时,需要保证处于联网状态。因为requests模块会对服务器进行请求,服务器会响应数据。需要联网,才能传输数据)

基于以上内容, 可以基于搜狗翻译(或其他翻译网站)进行编写PYthon3在线翻译爬虫程序。

四、基于搜狗翻译的PYthon3在线翻译爬虫程序

可以基于以上内容,自己制作一个基于搜狗翻译的PYthon3在线翻译的爬虫程序,下面给出其代码:

python 复制代码
# 基于搜狗翻译,编程成Python爬虫程序,输入单词,进行实时翻译,并附加相关单词的翻译学习
# post方法是用于向Web服务器提交数据的HTTP请求方法。它允许客户端将数据作为请求的一部分发送给服务器,以便服务器进行处理或存储。
# 1、导入requests模块
import pprint
import requests
# 2、复制搜狗翻译的链接
query_url = 'https://fanyi.sogou.com/reventondc/suggV3'
# 3、制作请求头,模拟人的操作
keyword = input("请输入你要翻译的单词:")
data = {
        'from':'auto',
        'to': 'zh-CHS',
        'client': 'wap',
        'text': keyword,
        'uuid': '21ef11c5-e2cd-49b8-a397-c89a32dd67da',
        'pid': 'sogou-dict-vr',
        'addSugg': 'on',
}
# 4、模拟识别码
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36'}
# 5、使用post方法进行请求
response = requests.post(url=query_url, headers=header, data=data)
# 6、提取所需要的信息
result = response.json()['sugg']
# 循环打印
for x in result:
    print(x['k']+': '+x['v'])

注:此贴只用于学习交流,禁止商用。

相关推荐
青 春 记 忆5 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO35 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO7 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白7 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
深蓝电商API8 小时前
常见反爬策略全解析
爬虫·反爬策略
荷蒲9 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)10 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机10 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69211 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy12 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源