python爬虫--调用百度翻译进行文本翻译

python爬虫实现百度译文本

打开百度翻译网站地址,F12审查元素,我这里用的是火狐浏览器

点网络,会发现很多GET,POST请求,右边消息头那里会有很多信息:请求地址、请求方法、远程地址、状态码、server、等等之类的信息

这里的请求地址才是翻译的实际地址,看上图

在客户端和服务器之间进行请求,响应的时候,两种最常用的方法就是get,post

get:定义上来说,是指向服务器请求获得数据

post:是向指定服务器提交被处理的数据

点开一个post请求看看里面的内容

里面会有一些表单数据,query:你好,这个你好就是我们刚刚输入翻译的内容,有了这些信息,我们就可以写爬虫调用了

代码如下

#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import urllib.request    #导入urllib.request模块
import urllib.parse     #导入urllib.parse这个是用来解析的
import json     # json 为轻量级的数据交换格式

input_shuru = input('输入要翻译的内容:') #输入要翻译的内容

url = 'https://fanyi.baidu.com/v2transapi' #实际翻译地址
webheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'}
# 模拟火狐浏览器访问

headers = webheaders  # headers 请求消息头,上面设置了一个浏览器消息头,直接调用
req = urllib.request.Request(url,headers) #加上url,headers构成一个完整的访问请求

data = {} #data 是一个空的字典,下面把百度翻译表单数据里面的参数都添加进去
data['from'] = 'auto'
data['to'] = 'auto'
data['query'] = input_shuru  #把要翻译的内容赋值过来
data['transtype'] = 'translang'
data['simple_means_flag'] = '3'
#data需要用到urllib.parse.urlencode()函数进行编码
#注意 encode是进行编码 ,decode进行解码
data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(req,data)  #打开目标网站
html = response.read().decode('unicode_escape')  #读取目标网站并解码成汉字(unicode_escape)
target = json.loads(html) #把上面的字符串结果用 json 封装成字典

print('翻译结果为',target['trans_result']['data'][0]['result'][0][1]) #输出结果

应该看到的结果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

Keepalived+Nginx高可用架构配置

1862
来自专栏小夜博客

Axel - Linux多线程下载工具

43510
来自专栏后端技术探索

爬虫、代理和Nginx

做过爬虫的人应该都知道,抓的网站和数据多了,如果爬虫抓取速度过快,免不了触发网站的防爬机制,几乎用的同一招就是封IP。解决方案有2个:

2942
来自专栏上善若水

0x01缓存基本概念一览

它的主要实现思想是:在程序和数据源之间引入一个中间层即Cache,访问cache的时间成本肯定远低于数据源。

1494
来自专栏GopherCoder

『Ansible 上手指南』

1833
来自专栏专业duilib使用+业余界面开发

duilib中list拖动表头大小内容大小跟随变化的一个示例

2114
来自专栏IT笔记

Nginx学习之HTTP/2.0配置

哎呀,一不小心自己的博客也是HTTP/2.0了,前段时间对网站进行了https迁移并上了CDN,最终的结果是这酱紫的(重点小绿锁,安全标示以及HTTP/2.0请...

38914
来自专栏深度学习之tensorflow实战篇

python django整理(五)配置favicon.ico,解决警告Not Found: /favicon.ico

Django 浏览器打开警告Not Found: /favicon.ico,解决问题需要三步 1.首先准备favicon.ico图片,网上有很多转化工具,放到在...

5886
来自专栏北京马哥教育

Linux学习笔记:文件的权限

Linux 是一个多用户、多任务的系统,常常有多人同时使用一台机工作,为了保护每个人的隐私权,“文件所有者”的角色就显得相当重要了。当Linux用户登录系统之...

2775
来自专栏北京马哥教育

Linux学习笔记:文件的权限

Linux 是一个多用户、多任务的系统,常常有多人同时使用一台机工作,为了保护每个人的隐私权,“文件所有者”的角色就显得相当重要了。当Linux用户登录系统之后...

3759

扫码关注云+社区

领取腾讯云代金券