Python爬取百度翻译及有道翻译
Python爬取百度翻译及网易有道翻译
百度翻译
一、简介
明确翻译链接,百度翻译链接:https://fanyi.baidu.com/,但是该链接不能为我们提供翻译的内容,此时需要在chrome浏览器对百度翻译页面中使用F12启动控制台,在页面中输入要翻译的内容,在左侧的控制台会出现name为sug详细信息,可以看到有多个sug,是因为没输入一个字符会出现一个sug,找到要翻译的那个sug即可。点击preview即可看到要翻译的信息。
二、分析:
以上提到sug中就有翻译的链接,点击Headers即可查看翻译链接:Request URL: https://fanyi.baidu.com/sug,Headers中的信息均为Http协议中的信息,一些常见的请求方式等,最主要的信息是最下面的Form Data 下面的信息,因为每次输入要翻译的字符,都会以Form Data表单的形式传入。
三、代码
# coding = utf-8
# 导入要使用的库 json urllib
import json # 用于将python对象转换为json对象,
import urllib.request as ur # 用于获取链接
import urllib.parse as up # 用于编码解码
# 先定义一个需要翻译的数据也就是要翻译的数据,以上提到的Form Data 表单,以字典的方式传入
word = input('请输入要翻译的单词或句子:)
data = {'kw':word
}
url = 'https://fanyi.baidu.com/sug' # 翻译链接
# 先使用parse将data数据进行解码
data_url = up.urlencode(data)
# 构造一个Request对象,进行爬取
request = ur.Request(url=url,data = data_url.encode('utf-8'))
# 将构造的页面对象进行读取
response = ur.urlopen(request)
# print(response) # 字典类型python数据
# 将python对象转换为json对象
ret = json.loads(response)
# print(ret) # 返回一个字典类型json数据
# 根据上面字典返回的信息对其进行切片读取信息
translate = ret['data'][0]['v']
print('翻译结果为:%s'%translate)
有道翻译
一、简介:
明确翻译链接,在有道翻译链接:https://fanyi.youdao.com/,但是该链接不能为我们提供翻译的内容,此时需要在chrome浏览器对百度翻译页面中使用F12启动控制台,在页面中输入要翻译的内容,在左侧的控制台会出现name为translate_o详细信息,点击preview即可看到要翻译的信息。同百度翻译一样。
二、分析
以上提到translate_o中就有翻译的链接,点击Headers即可查看翻译链接:Request URL: https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule,但是使用该链接会出现一个错误信息{‘errorCode’: 50},这是有道做的反爬,需要更改正确链接。以下代码会有展示。此时可以看到Form Data的内容比百度中的多,在开发中只选择有用的数据即可,不清楚全部填写也不影响。
三、代码
# coding = utf-8
# 导入要使用的库 json urllib
import json
import urllib.request as ur
import urllib.parse as up
# 以下链接在爬取时会出现一个错误{'errorCode': 50}
# url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
# 正确链接将链接中的 translate 后面 _o 去掉。
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
word = input('请输入要翻译的单词或句子:')
# data数据传入的Form Data表单数据可以是其中的全部,其实有用的就以下两个。
data = {'i':word,'doctype': 'json'
}
data_url = up.urlencode(data).encode('utf-8')
request = ur.Request(url=url,data=data_url)
response = ur.urlopen(request).read()
ret = json.loads(response)
# print(ret)
translate = ret['translateResult'][0][0]['tgt']
print('翻译结果为:%s'%translate)
Python爬取百度翻译及有道翻译相关推荐
- python爬百度翻译-Python爬取百度翻译(利用json提取数据)
本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...
- python爬取百度使用kw关键字爬取时出现,百度安全验证,解决方法
python爬取百度使用kw关键字爬取时出现,百度安全验证,解决方法 之前爬取百度用kw时的代码(没有任何问题) import requestsurl = 'http://www.baidu.com/ ...
- python爬取百度贴吧图片库_python爬取百度贴吧的图片2
今天看了一下beautifulsoup库的用法,把昨天的python爬取百度贴吧的图片1的代码更新成使用beautifulsoup库的函数来实现.用的还是不太熟练,但是感觉比正则表达式写起来容易了一些 ...
- python爬取百度搜索_使用Python + requests爬取百度搜索页面
想学一下怎样用python爬取百度搜索页面,因为是第一次接触爬虫,遇到一些问题,把解决过程与大家分享一下 1.使用requests爬取网页 首先爬取百度主页www.baidu.com import r ...
- 【Python】python爬取百度云网盘资源-源码
今天测试用了一下python爬取百度云网盘资源. 标签: <无> 代码片段 [代码][Python]代码 import urllib import urllib.request impor ...
- python爬取百度在线语音合成的音频
python爬取百度在线语音合成 URL:https://ai.baidu.com/tech/speech/tts_online 抓包 api从这里抓包,用的post请求,返回的是base64文件格式 ...
- python爬取百度云网盘资源-源码
今天测试用了一下python爬取百度云网盘资源. 代码片段 import urllib import urllib.request import webbrowser import re def yu ...
- Python爬取百度图库
Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...
- python爬取百度贴吧
利用python爬取百度贴吧的网页,输入贴吧名,起始页,终止页,爬取索要爬取的页面 贴吧 ''' import urllib.request import urllib.parse import ti ...
最新文章
- 基于inotify的文件监控方案
- 香港中文大学(深圳)罗元教授招收计算机与信息工程全奖博士
- 送出orkut邀请,当然如果需要gmail邀请,还有很多
- (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
- 性能测试(三)Jmeter工具
- Java面试题系列(X)优化tomcat配置
- VS2013中安装配置和使用Boost库
- ArcGIS API for JavaScript与 npm
- entity framework 动态条件
- js中将字符串作为函数名来调用的方法
- 东方卫视收视率查询_全国电视台收视率排行榜
- Eclipse代码格式化无效解决方案
- 微信分享自定义图标大小限制_微信分享时安卓的自定义参数无效的解决办法
- testflight怎么做版本更新_TestFlight
- 4键电子手表说明书_电子表通用说明书
- Science复活远古“蛋白质”,揭示光合作用的“昨天、今天和明天”
- C盘容量不足,怎么增加c盘空间?看这5个方法
- H5 集成微信自定义分享(兼容 ios android)
- (OpenCV+Python)--目标跟踪,背景分割器:KNN、MOG2和GMG
- 香港科大2020年TOP12人气热帖@商学院公众号
热门文章
- 部分HP笔记本无法使用GHOST软件解决方法
- 在项目中应用SpringSecurity权限控制
- Java输入某年某月某日,判断这一天是这一年的第几天?
- 电机编码器调零步骤_什么是调零对位?伺服电机编码器调零对位方法
- 第二章-连接到WAN
- 网关 Spring Cloud Zuul 自定义过滤器认证转换 Token
- Jenkins的详细安装及使用
- BLE4.2链路层(LL)安全机制-LL Privacy
- 用 Uno Platform 构建一个 Kanban-style Todo App
- C语言实现,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)