最近一直在一个平台学习Python,所以分享下课程里面抓取百度翻译的操作。原理其实也很简单,就是将浏览器请求的操作我们用python进行模拟,从而获取到返回的数据,我们将返回的数据进行提取,从而得到我们想要的内容。

一、安装requests模块

1.当然如果安装过了就可以跳过这一步了。如果没有安装过可以通过命令行输入 pip install requests 进行安装。如果你是用的pycharm,那么需要在当前工程下的venv里面安装,因为我一开始直接打开命令行输入的命令,安装成功但是程序导入包的时候还是提示找不到这个模块,后面在工程下的venv目录下安装就好了。

2.当然也可以通过pycharm自带的安装模块进行安装。点击File->settings 找到如下图的位置,输入你需要安装的模块名称,然后点击Install Package即可。当然推荐这种方式安装了。

二、进行百度翻译数据请求的收集

1.首先我们进入百度的翻译页面,网址 http://fanyi.baidu.com/translate。这里我们需要点开开发者模式(像搜狗浏览器快捷键就是F12),将浏览器切换成手机模式(最上面圈起来的那个小图标点击一下就是手机模式,其他浏览器图标也差不多)。因为PC端的web在post提交数据的时候会有2个我们不好获取的参数(其中一个是token),但是手机版的没有这2个参数,所以我们选择手机版进行所需要的数据收集。

2.我们输入一个查询的内容,点击翻译按钮。这个时候我们可以看到Network下会有很多文件,我们找到如图下的这个文件,会发现我们想要的一些信息都在这个里面了。

request URL:请求的地址

request method:请求的方式,一般常见的也就Post和Get

user-agent:用户代理,你会发现pc和手机请求的时候这个里面的值是不一样的。而且如果你不设置的话,里面会有一个python的默认值。这个值可能会影响网站给你返回的数据。

form data:就是我们提交的表单数据了。而参数的zh表示中文,en表示英文,这个可以多获取几个语言的参数,然后自行选择从哪个语言翻译成哪个语言即可。

3.我们点击response可以看到返回的数据,我们想要的数据就在这个里面了。

格式化后我们最后可以发现data下的st_tag里面就是我们想要的数据了,到时候直接解析出来这个内容即可。

三、附上Python源码

import requests #导入需要的包

importjson

search= input("请输入你要翻译的内容:")

url= "http://fanyi.baidu.com/extendtrans" #请求的地址

headers={"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36"} #设置请求的头部

#设置提交的数据

posData={"query":search,"from":"en","to":"zh"}

response= requests.post(url=url,data=posData,headers=headers)#模拟请求

#获取response的数据有2种方式 一种是text获取的直接是文本格式 但是可能有乱码 需要手动设置response.encoding("编码") 解决乱码#还有一种就是response.content 里面存的是网站直接返回的数据 二进制格式 然后通过decode解码即可#因为返回的是json对象,所以我们将最后解码后的字符串进行json格式转换 使用json.loads()进行转换

json_data=json.loads(response.content.decode())#然后我们可以通过格式化工具进行json的解析

print("单词:{0} 翻译:{1}".format(search,json_data["data"]["st_tag"]))

运行效果

不到10行代码就可以搞定,现在想了想如果用java实现的话恐怕几十行吧,大家也来试试吧^_^

python语言翻译-教你用Python抓取百度翻译相关推荐

  1. 教你用Python抓取百度翻译

    最近一直在一个平台学习Python,所以分享下课程里面抓取百度翻译的操作.原理其实也很简单,就是将浏览器请求的操作我们用python进行模拟,从而获取到返回的数据,我们将返回的数据进行提取,从而得到我 ...

  2. python在线翻译脚本_用Python抓取百度翻译内容并打造自己的翻译脚本!

    英文不好一直是我的一个短板,尤其是在学习代码的阶段,经常需要查询各种错误,很是苦逼,一直就想自己做个翻译的脚本,省去打开网页的时间,但是查询之后发现网上的教程都是百度翻译改版之前的爬虫,不得已只好自己 ...

  3. python实现食品推荐_通过Python语言实现美团美食商家数据抓取

    首先,我们先来打开美团美食商家页面,来分析一下. 如上面所提供的URL即为美团美食商家页面.或者我们通过美团官网打开一个美团美食商家页面,打开步骤如下:1.打开浏览器,输入 即可打开美团北京首页 2. ...

  4. python 百度词典_python在线抓取百度词典的翻译结果翻译单词

    这段代码通过抓取百度词典的翻译结果达到翻译单词的目的 这个小工具使用Python语言编写完成,其中使用到这 些类库(urllib,BeautifulSoup ),前者主要负责网络通讯方面,后者负责HT ...

  5. 【Python爬虫教学】百度篇·手把手教你抓取百度搜索关键词后的页面源代码

    [开门见山] 最近整理了下之前做过的项目,学的东西不少,乱七八糟.打算写点关于 Python 爬虫的东西,新人一枚,还望大佬们多多担待,别把我头给打歪了. 前面我先磨叽磨叽些基础的东西,对爬虫新人友好 ...

  6. python百度贴吧怎么爬取最早的帖子_【Python爬虫教学】百度篇·手把手教你抓取百度贴吧任意贴吧指定范围页数内的源代码...

    开门见山. 懒癌一犯,能拖一天是一天. 好了,亲爱的小伙伴们,我又回来了!今天带来的是抓取输入的任意贴吧,抓取指定范围页数内的源代码. 工具: 依旧是 PyCharm 和 Google 浏览器,pyt ...

  7. python爬百度翻译-爬虫 python爬取百度翻译接口 超详细附源码

    前言 今天教大家如何利用 firefox 分析百度翻译的接口,并用python爬取接口.大家学会后可以干一些有趣的事情,比如做一个自己的翻译软件. 具体内容 1 - 找到URL接口 进入百度翻译的网址 ...

  8. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  9. python爬虫百度贴吧代码大全_零基础写python爬虫之抓取百度贴吧代码分享

    这里就不给大家废话了,直接上代码,代码的解释都在注释里面,看不懂的也别来问我,好好学学基础知识去! # -*- coding: utf-8 -*- #------------------------- ...

最新文章

  1. ecos 编译时无法找到 tclConfig.sh 和 tkConfig.sh
  2. linux基础: shell————正则表达式基础及sed
  3. 编码练习——Java-数组-API-练习
  4. PHP stripos strpos,strpos()和stripos()函数的区别
  5. [Bugku CTF——Pwn] pwn1
  6. BZOJ 3289 Mato的文件管理 | 莫队 树状数组
  7. mysql普通标转分区表_MySQL分区表到普通表互转
  8. java循环队列_Java 循环队列的实现
  9. 团队管理---如何管理好团队
  10. python实现合并两个文件并打印输出
  11. java freemark 使用_freemarker单独使用介绍
  12. ORBSLAM关键帧的筛选和插入
  13. 新装的电脑执行maven install命令一直报Could not find artifact jdk.tools:jdk.tools:jar:1.7
  14. Linux命令之MD5校验md5sum
  15. QCA-WIFI无线芯片介绍
  16. 实现内网(局域网)控制所有电脑一键关机并且系统还原的方案
  17. JavaScript小记(持续更新)
  18. Lichee_RV学习系列--stream移植
  19. 没想到系列之YOLOv4:Optimal Speed and Accuracy of Object Detection
  20. python爬取广州港务局船舶调度总计划

热门文章

  1. gfnormal 域名 是阿里云的高防IP
  2. 准确率99%!基于深度学习的二进制恶意样本检测——瀚思APT 沙箱恶意文件检测使用的是CNN,LSTM TODO...
  3. mongodb 关闭服务 mongod -f /root/mongodb/bin/xx.conf --shutdown
  4. tensorBoard 初级实现
  5. shell date 格式化
  6. OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析
  7. ABAP Netweaver和Hybris Enterprise Commerce Platform的登录认证
  8. 基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
  9. android130 android启动
  10. POJ - 3254 - Corn Fields