最近一直在一个平台学习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 #导入需要的包
import jsonsearch = 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实现的话恐怕几十行吧,大家也来试试吧^_^

转载于:https://www.cnblogs.com/smallfoxdog/p/8630974.html

教你用Python抓取百度翻译相关推荐

  1. python语言翻译-教你用Python抓取百度翻译

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

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

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

  3. python爬百度翻译-教大家用python爬取百度翻译,超简单

    一,首先导入urllib里面的request和parse:这里导入parse主要字符转码 from urllib import request,parse 二,爬取别人的网站最好加入伪装,也就是浏览器 ...

  4. python爬取并翻译_教大家用python爬取百度翻译,超简单-Go语言中文社区

    一,首先导入urllib里面的request和parse:这里导入parse主要字符转码 from urllib import request,parse 二,爬取别人的网站最好加入伪装,也就是浏览器 ...

  5. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

  6. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  7. Python爬虫之小试牛刀——使用Python抓取百度街景图像

    之前用.Net做过一些自动化爬虫程序,听大牛们说使用python来写爬虫更便捷,按捺不住抽空试了一把,使用Python抓取百度街景影像. 这两天,武汉迎来了一个德国总理默克尔这位大人物,又刷了一把武汉 ...

  8. Python爬取百度翻译及有道翻译

    Python爬取百度翻译及网易有道翻译 百度翻译 一.简介 明确翻译链接,百度翻译链接:https://fanyi.baidu.com/,但是该链接不能为我们提供翻译的内容,此时需要在chrome浏览 ...

  9. 手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

最新文章

  1. 设计模式:命令模式(Command Pattern)
  2. php 快递查询,PHP查询快递信息
  3. 史上最全PHP正则表达式实例汇总
  4. Java多态性练习——几何图形
  5. TestNG+Maven+IDEA 自动化测试(一) 环境搭建
  6. 使用ASP.NET MVC对用户组的自定义授权
  7. easy datagrid 按钮控制
  8. 图片预加载插件 preLoad.js
  9. IdentityServer4学习及简单使用
  10. python读取字符串按列分配后按行读出
  11. 解决一次模拟post请求的时候,出现中文???的错误
  12. ArcGIS的 高斯-克吕格 投影坐标系
  13. WareZ入门指南--TLF元老thunderlight
  14. C/C++编程:普通、标准布局、POD和文本类型
  15. 微信程序开发系列教程(四)使用微信API创建公众号自定义菜单
  16. 盘点2011年各月影响云计算发展的大事件
  17. 51单片机的几种精确延时
  18. Python代码实现飞机大战
  19. java-如何用输入流写3000遍“爱你三千次”。
  20. kerboros协议讲解

热门文章

  1. 【原创】RMQ - ST算法详解
  2. Android(java)学习笔记69:短信发送器
  3. 【Linux】字符转换命令join
  4. Android打包编译shrinkResources true报错解决方案
  5. Flutter Scaffold组件详情配制使用
  6. Android Canvas 绘制基本形状 Android自定义View(七)
  7. linux服务器上安装mysql
  8. ES 11 - 配置Elasticsearch的映射 (mapping)
  9. jenkins-系统管理-节点管理进去报错
  10. 机器学习笔记(3) 随机森林