思路

分析有道在线翻译的请求、响应信息

使用Google Chrome浏览器进行分析,如图:

1.获取到Request URL

2.获取到请求头信息

3.获取到要传递给服务器的表单信息

4.响应体,可以看出是Json格式数据

编写代码思路

1.根据以上分析得到的信息,构造url、请求头、表单信息

2.获取到urllib.Request对象

3.获取响应的Json数据,并进行解析

源码

# !/usr/bin/env python
# -*- coding:utf-8 -*-"""
用urllib模块发送post请求,模仿有道翻译
"""import urllib.request
import urllib.parse
import jsondef translate(word):"""根据给定词语进行POST请求,并返回json数据"""# 请求地址urlurl = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"# 请求头request_headers={"Accept":"application/json, text/javascript, */*; q=0.01","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36","X-Requested-With":"XMLHttpRequest"}# 发送给服务器的表单form_data={"i":word,"from":"AUTO","to":"AUTO","smartresult":"dict","doctype":"json","version":"2.1","keyfrom":"fanyi.web","action":"FY_BY_REALTIME","typoResult":"false"}# POST发送的data必须为bytes或bytes类型的可迭代对象,不能是字符串form_data=urllib.parse.urlencode(form_data).encode()# 构造请求对象Requestreq=urllib.request.Request(url,data=form_data,headers=request_headers)# 发起请求response=urllib.request.urlopen(req)data=response.read().decode()return datadef parse_data(data):"""解析json数据"""res=json.loads(data)src=res["translateResult"][0][0]["src"]tgt=res["translateResult"][0][0]["tgt"]print("{} --> {}".format(src,tgt))if __name__=="__main__":while True:word = input("输入: ")if word=='q':breakdata=translate(word)print(data)# 解析json数据parse_data(data)

运行结果

urllib库用POST请求模仿有道在线翻译相关推荐

  1. 爬虫模拟对“有道在线翻译”发送请求(请求中的数据含需分析js来解出变化数据)

    每日分享: 做好自己 世界上没有一份工作不辛苦,也没有一处人事不复杂,无论你当下正在经历什么,都要调整好心态,继续前行,继续努力! 总有人嫌你不够好,也总有人觉得你哪里都好,爱你的人自然会爱你,不爱你 ...

  2. python在线翻译代码_Python 20行简单实现有道在线翻译的详解

    简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...

  3. python读音有道-Python 20行简单实现有道在线翻译的详解

    简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是相关部分的代码: import urllib.re ...

  4. Python3网络爬虫教程8——有道在线翻译项目(JS加密)

    上接: Python3网络爬虫教程7--SSL数字证书 https://blog.csdn.net/u011318077/article/details/86538116 6. js加密(有道在线翻译 ...

  5. Python爬虫教程-16-破解js加密实例(有道在线翻译)

    python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...

  6. 爬有道在线翻译(已完善)

    今天写了个爬有道在线翻译的python爬虫,可以获得有道翻译的结果,先把代码放这(按q退出) import urllib.request import urllib.parse import json ...

  7. python urllib.request 爬虫 数据处理-Python网络爬虫(基于urllib库的get请求页面)

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  8. 爬虫入门-爬取有道在线翻译结果(2)

    由于服务器会识别访问的对象是否为代码并加以限制,所以需要加上一定的措施隐藏代码身份.以上节有道为例: 1.添加headers信息: 在生成request对象时添加headers信息中的User-Age ...

  9. Python 20行简单实现有道在线翻译

    转载请注明出处 目录 目录 简介 代码 重要函数 简介 主要是尝试简单的使用pyhton的爬虫功能,于是使用有道进行尝试,并没有进行深入的诸如相关api的调用. 以下是需要的POST数据 代码 以下是 ...

最新文章

  1. [POJ 2329] Nearest number-2
  2. 禁用浏览器滚动条的解决方案
  3. C#Winform怎么让控件随着主界面大小变化
  4. Windows 7 64位系统上搭建Hadoop伪分布式环境(很详细)
  5. 每天CookBook之JavaScript-059
  6. 搜索 —— 暴力搜索
  7. mysql-cacti-templates-1.1.2.tar.gz 免费下载 cacti MySQL添加监控
  8. 数据库系统原理简答题、论述题、判断题
  9. [转载] C++子字符串查找及提取
  10. 【推荐】 Neutralizer 安卓上特殊的均衡器
  11. 二、Arduino软件下载-安装-测试教程
  12. container html css,splitcontainer
  13. Matlab2017b安装教程及破解失败方法
  14. python工资高还是java-python工资高还是java?python和java薪资对比
  15. 英语发音规则---P字母
  16. Photoshop学习(一)Ps基础
  17. php自定义apk安装包实例
  18. 提高软件测试能力的建议
  19. 你一定用得到的LaTeX入门资料
  20. CAN log之blf/vsb/asc/trc

热门文章

  1. 谷歌大脑提出VeLO优化器,无需调参,最高比Adam快16倍!
  2. 液晶面板里面有些什么配件_液晶模组和液晶面板有什么区别?
  3. php redis 唯一id,PHP + Redis 实现一个简单的twitter
  4. 优秀的Vue UI组件库
  5. 半自动化批量下载专利全文pdf傻瓜攻略
  6. 无法部署应用目录 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT]java.lang.IllegalStateException: 启动子级时出错
  7. Arduino成长日记6 - 中断机制
  8. 破除对于XP半开连接数限制的误解
  9. Centos7配置Hadoop出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)的解决
  10. unity找不到报错界面