python爬虫 爬取有道翻译详解
这里我们使用python的urllib来实现
首先,我们需要找到我们进行翻译时上传给服务器的数据。
我们可以通过查找审查元素中的Network这一栏目下,选择执行Post方法的选项。
在General下的Request URL就是我们访问的链接
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
而Form Data下的就是我们所提交的数据,其中的i:就是我们提交的翻译内容,而这段数据,是通过字典的形式来存储的,所以我们只需要修改这个i所对应的值即可提交我们想要的翻译内容。
data = {'i' : target,'from' : 'AUTO','to' : 'AUTO','smartresult' : 'dict','client' : 'fanyideskweb','salt' : '15810537039389','sign' : '157b38258a2253c7899895880487edfd','ts' : '1581053703938','bv' : '901200199a98c590144a961dac532964','doctype' : 'json','version' : '2.1','keyfrom' : 'fanyi.web','action' : 'FY_BY_CLICKBUTTION', }
但是我们并不能这样直接的提交数据,我们还需要利用到urllib中的parse模块来将我们的数据以utf-8的形式进行编码
data = urllib.parse.urlencode(data).encode('utf-8')
当我们上传了数据后,还需要读取返回的数据,同时再将返回数据通过utf-8的形式进行解码
rep = urllib.request.Request(url, data,)response = urllib.request.urlopen(rep)html = response.read().decode('utf-8')
我们发现返回来的数据其实是一个json格式的数据,也就是通过字符串来封装的python的数据结构,所以我们需要导入这个json
result = json.loads(html)
这就是导入后的数据,就是返回的字典,我们可以通过‘translateResult’这关键词来访问翻译结果
因为外面还封装了两层列表,所以我们需要进入这两层列表后再通过tgt这个关键字即可找到翻译结果,当然,这里使用正则表达式来查找会更加简洁
result = result['translateResult'][0][0]['tgt']
最后
完整代码
import urllib.request
import urllib.parse
import json
import time
while True:target = input("请输入需要翻译的内容:")url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'data = {'i' : target,'from' : 'AUTO','to' : 'AUTO','smartresult' : 'dict','client' : 'fanyideskweb','salt' : '15810537039389','sign' : '157b38258a2253c7899895880487edfd','ts' : '1581053703938','bv' : '901200199a98c590144a961dac532964','doctype' : 'json','version' : '2.1','keyfrom' : 'fanyi.web','action' : 'FY_BY_CLICKBUTTION', }head = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}data = urllib.parse.urlencode(data).encode('utf-8')rep = urllib.request.Request(url, data, head)response = urllib.request.urlopen(rep)html = response.read().decode('utf-8')result = json.loads(html)result = result['translateResult'][0][0]['tgt']print("翻译结果为:",result)
上面的这个代码其实还有很多缺点,因为当我们多次访问后可能会被服务器发现访问者其实只是一段代码,所以我们需要通过添加user agent来让服务器认为是浏览器访问,并且还需要添加代理来防止在同一ip下多次访问后被ban,这些内容我都会在后面的博客中写出
python爬虫 爬取有道翻译详解相关推荐
- php抓取微博评论,python爬虫爬取微博评论案例详解
前几天,杨超越编程大赛火了,大家都在报名参加,而我也是其中的一员. 在我们的项目中,我负责的是数据爬取这块,我主要是把对于杨超越 的每一条评论的相关信息. 数据格式:{"name" ...
- Python爬虫爬取微博评论案例详解
文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 前几天,杨超越编程大赛火了,大家都在报名参加,而我也是其中的一员. 在我们的项目中 ...
- python爬取有道翻译
python爬虫爬取有道翻译教程 编写环境 为了宝宝们能够正确读懂本教程,在正式开始前,宝宝们需要搭建的环境如下: 连接互联网的win10电脑,(win7也可以) Google浏览器(版本无要求) P ...
- python爬虫实战之爬取有道翻译
文章目录 介绍 网页分析 代码实战 当我们学习python爬虫时我们需要做大量的练习,往后我会发布更多的python爬虫练习实战代码,进一步剖析爬虫的每一个细节 介绍 本次爬取的是有道翻译,利用pyt ...
- 基于python爬取有道翻译,并在线翻译
基于python爬取有道翻译,并在线翻译 由于我也是爬虫新学者,有什么做的不对的请多加包涵 我们需要使用的库如下 from urllib import request import urllib im ...
- Python爬虫之爬取淘女郎照片示例详解
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...
- python爬取喜马拉雅_Python爬虫实战案例之爬取喜马拉雅音频数据详解
这篇文章我们来讲一下在网站建设中,Python爬虫实战案例之爬取喜马拉雅音频数据详解.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 前言 喜马拉雅是专业的音频分享平台,汇集 ...
- Python爬虫教程-Python爬取股票数据过程详解
这篇文章主要介绍了基于Python爬取股票数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本环境配置 python 3.6 pycha ...
- 百度翻译API限量后,python调用有道翻译详解
背景 8月1日,百度翻译API宣布"调整" 刚开始,以为是调用百度API代码出问题了,一直报错 后查,免费还有,但是从旧时不限量 改为5万字符/月,原来是"羊毛被薅光了& ...
最新文章
- 边缘网联与5G等服务器
- Opencv Mediapipe 人体追踪
- ORA-38301:can not perform DDL/DML over objects in Recycle Bin
- linux运行脚本报错:/bin/bash^M: bad interpreter: No such file or directory(dos2unix )(/bin/sh^M)(回车符、换行符)
- wordpress漏洞上传php文件夹,WordPress Asset-Manager PHP文件上传漏洞
- 如何用c语言验证一个定理,验证动量定理方法一
- Windows 10环境下AndroidStudio安装教程(内含如何配置Http Proxy)
- python字符串转义序列_Python | 忽略字符串中的转义序列
- 无法使用集合初始化_Java集合类解析之Hashtable
- 【Spring】HttpMessageConverter的作用及替换
- struts2_struts2线程安全吗?
- 一键还原系统(自我笔记)
- (ICIP2019)图像语义分割(23) LEDNet-用于实时语义分割的轻量级编解码网络
- MySQL编译安装时常见错误分析
- Reflector for .NET 官方下载地址
- java用正则表达式大全_Java 正则表达式 大全
- Cartographer 3D 建图实战-(基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实际进行实验)
- MacBook下载的软件显示无法打开“某某某”,因为Apple无法检查其是否包含恶意软件。”的解决办法
- 2022年度调味品十大热门品牌排行
- 谁可以参与初创股权分配?
热门文章
- Ubuntu开放指定端口
- 迭代器模式coding
- 浅析若干Java序列化工具
- 验证用户输入的是不是中文名字 淘宝精品案例 元素样式设置的方式 链式编程
- c语言进程调度报告,进程调度(C语言实现).doc
- abaqus 多层网格绑定_ABAQUS螺栓接触分析
- Spring Environment
- 【面向过程编程】零钱通项目
- 解决GitLab中使用SSH的git clone总是提示输入密码且任何密码都不对
- 【报错】ValueError: not enough values to unpack expected 2, got1