1 importurllib.request2 importurllib.parse3 importjson4 while 1:5

6 content=input("请输入要翻译的内容:")7 url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link"

8 data={}9 data['type']='AUTO'

10 data['i']=content11 data['doctype']='json'

12 data['keyfrom']='fanyi.web'

13 data['ue']='UTF-8'

14 data['typoResult']='true'

15 data=urllib.parse.urlencode(data).encode('utf-8') #urlencode()主要作用就是将url附上要提交的数据。

16 response=urllib.request.urlopen(url,data)17 html=response.read().decode('utf-8')18 target=json.loads(html)19 print("翻译结果: %s" % (target['translateResult'][0][0]['tgt']))

这是form Data中的内容

i:

你好

from:

AUTO

to:

AUTO

smartresult:

dict

client:

fanyideskweb

salt:

1497075070071

sign:

fbdf42a5b8f48f0defc722823ef1be6b

doctype:

json

version:

2.1

keyfrom:

fanyi.web

action:

FY_BY_CLICKBUTTON

typoResult:

true

进行分析,首先引入三个模块,

首先找到网页版有道词典的在线翻译打开检查,找到network,随便翻译一段话,打开产生的数据,

找到在Headers下的form Data表

我们要解决,如何用python进行POst表单提交:这里urlopen函数有一个data参数,如果我们给这个参数赋值,那么请求就是POST方式

如果data没有赋值HTTP请求就是GET方式

在python3的文档里,告诉我们要使用data这个参数,就必须要用urllib.request.urlopen()将其转换为某种格式

step:

我们首先要将data表单的内容进行赋值,不难发现,我们提交的要翻译的内容是通过表单中“i”这一项来传递的。

然后对data进行赋值,注意格式也要转换,并且使用“utf-8”解码

下面利用urllib.request.urlopen()来打开url,并且使用第二参数,将data提交

得到的html页面

由于数据交换使用json传输,这里我们用json.loads()解码,并且将值赋给target

target的值其实是一个字典,

{'smartResult': {'entries': ['', 'hello;hi'], 'type': 1}, 'translateResult': [[{'tgt': 'How are you', 'src': '你好'}]], 'elapsedTime': 1, 'errorCode': 0, 'type': 'ZH_CN2EN'}

字典的操作忘了吗,复习一遍吧:

>>>target={'smartResult': {'entries': ['', 'hello;hi'], 'type': 1}, 'translateResult': [[{'tgt': 'How are you', 'src': '你好'}]], 'elapsedTime': 1, 'errorCode': 0, 'type': 'ZH_CN2EN'}

>>>print(target['translateResult']

[[{'tgt': 'How are you', 'src': '你好'}]]

>>>print(target['translateResult'][0][0]['tgt'])

How are you

over!

(伪造表单,打开页面提交表单,获得返回response,从response中提取结果)

知识点:

1,data=urllib.parse.urlencode(data)

2,response=urllib.request.urlopen(url,data) urlopen第二参数打开url,提交form data

python翻译爬虫_python 翻译爬虫相关推荐

  1. python网络信息提取_python网络爬虫与信息提取I

    一.Requests库的安装 安装Requests非常简单,只需一行代码即可.首先以管理员身份运行cmd,输入如下代码: 1.pip的安装 其实一般安装的python其Script文件包下都会自带有p ...

  2. python网络爬虫_Python网络爬虫——爬取视频网站源视频!

    原标题:Python网络爬虫--爬取视频网站源视频! 学习前提 1.了解python基础语法 2.了解re.selenium.BeautifulSoup.os.requests等python第三方库 ...

  3. python 百度百科 爬虫_python简单爬虫

    爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习 ...

  4. c#和python更适合爬虫_python在爬虫方面有哪些优势呢?

    python是一门非常不错的编程语言,通俗易懂.适合零基础入门,尤其是爬虫领域有着独特的优势,成为了首选编程语言. Python是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言.Python ...

  5. python绘制糖葫芦_python简单爬虫(一)

    学习python前纠结了下,到底是应该一个个知识点吃透,然后写些小程序.还是应该快速掌握基础语法,快速实践.思考后认为前者这么学习速度真心不高,于是花2天时间看了下python3的语法,虽然很多都不明 ...

  6. python增量爬虫_python增量爬虫pyspider

    1.为了能够将爬取到的数据存入本地数据库,现在本地创建一个MySQL数据库example,然后 在数据库中建立一张表格test,示例如下: DROP TABLE IF EXISTS `test`; C ...

  7. python分布式编程_python分布式爬虫中的rules有什么用

    python分布式爬虫中的rules有什么用 发布时间:2020-11-30 14:04:49 来源:亿速云 阅读:100 作者:小新 这篇文章主要介绍python分布式爬虫中的rules有什么用,文 ...

  8. python断点续传下载_Python 3 爬虫|第12章:并发下载大文件 支持断点续传

    1. stream 流式下载大文件 1.1 stream=True 和 iter_content() 我们将继续使用 Python 3 爬虫|第3章:同步阻塞下载 所搭建的测试环境,在 Nginx 默 ...

  9. python古诗默写_Python网络爬虫:爬取古诗文中的某个制定诗句来实现搜索

    Python网络爬虫:爬取古诗文中的某个制定诗句来实现搜索 发布时间:2020-07-20 23:48:19 来源:51CTO 阅读:883 python编译练习,为了将自己学习过的知识用上,自己找了 ...

  10. python外国网站爬虫_python 网络爬虫-爬取网页外部网站

    前言 上一篇中我们在维基百科的内部网站上随机跳转进入文章类网页,而忽视外部网站链接.本篇文章将处理网站的外部链接并试图收集一些网站数据.和单个域名网站爬取不同,不同域名的网站结构千差万别,这就意味我们 ...

最新文章

  1. 上海 |《PMCAFF产品经理第一课》报名倒计时手慢无,微博副总裁、丁香园、1号店、淘宝产品总监私房干货分享...
  2. 1-6docker数据共享与持久化
  3. 系统架构师学习笔记-数据通信与计算机网络(一)
  4. PyTorch | torch.linspace()创建均分数列张量 | torch.linspace()如何使用?| torch.linspace()使用方法 | torch.linspace例子
  5. emacs 替换模式_如何使用Emacs Org模式撰写博客
  6. go 输入输出流(io)
  7. Java中的GC(垃圾回收)log
  8. 5 获取窗口位置_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)
  9. Halcon 找圆测量工具
  10. [OT]“蓝帽”会议
  11. Laravel5.5前后台分离
  12. win10蓝牙已配对连接不上_win10蓝牙耳机连接不上怎么办_win10蓝牙耳机连接不上的解决方法...
  13. 产品商业需求文档_【器】我的产品需求文档心法
  14. 若依的${params.dataScope}
  15. win11 删除系统自带输入法
  16. Origin绘图—如何添加参考线
  17. 关于Too many re-renders. React limits the number of renders to prevent an infinite loop.的解决方案
  18. 正确将图片保存到相册的方法
  19. 【复试笔记】市政工程-流体力学
  20. 蓝桥杯web:7.【数据交互】天气预报查询

热门文章

  1. 阿里云实时数据加工服务的设计及实践
  2. 机器学习笔记(七):线性回归 | 凌云时刻
  3. 与生命赛跑,Serverless提升AI诊断效率90% | 凌云时刻
  4. 三分钟了解云存储网关 使用场景
  5. 李扬:2018春节港澳游(上篇:行)
  6. 【TWVRP】基于matlab遗传算法求解带时间窗+带充电桩的无人机巡检路径规划问题【含Matlab源码 YC001期】
  7. 【车位识别】基于matlab模板匹配车位识别【含Matlab源码244期】
  8. 【优化求解】基于matlab蚁群算法的函数优化分析【含Matlab源码 219期】
  9. python爬虫xpath提取数据_Python网络爬虫四大选择器(正则表达式、BS4、Xpath、CSS)总结...
  10. ai人工智能操控什么意思_为什么要建立AI分散式自治组织(AI DAO)