首页 > 编程语言 > 详细

Python爬虫教程-实现百度翻译

时间:2019-11-27 22:25:39      阅读:86      评论:0      收藏:0      [点我收藏+]

使用python爬虫实现百度翻译功能
python爬虫实现百度翻译: python解释器【模拟浏览器】,发送【post请求】,传入待【翻译的内容】作为参数,获取【百度翻译的结果】

通过开发者工具,获取发送请求的地址

提示: 翻译内容发送的请求地址,绝对不是打开百度翻译的那个地址,想要抓取地址,就要借助【浏览器的开发者工具】,或者其他抓包工具

下面介绍获取请求地址的具体方法
以Chrome为例

打开百度翻译:http://fanyi.baidu.com/
【点击右键】>【检查】>【network】(如果是火狐浏览器,点击【网络】)
点击【XHR】项,(有些需要刷新,有些异步的请求不需要刷新)
在页面【输入翻译的词汇】
在XHR项下,查找包含【输入需要翻译的词汇】的请求
查看请求的参数,需要【点击请求】>【Headers】>最下面的【Form Data】
(这里有一个坑:我们会发现有多个sug项,其实是因为百度翻译只要每输入一个字母就会发送一次请求,所以虽然多个请求的地址都是一样的,但是只有最后一个sug项的参数才是最后的词汇)

操作截图 :

技术分享图片

请求地址在这里

 技术分享图片

 

献上实现的代码

直接上代码,具体步骤下载注释上了

不会配置环境,安装python的包,请参考下一篇:
https://i-beta.cnblogs.com/posts/edit-done;postId=11945465
py05bdfanyi.py文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py05bdfanyi.py

 1 # python爬虫实现百度翻译
 2 # urllib和request POST参数提交
 3 # 缺少包请自行查看之前的笔记
 4 
 5 from urllib import request,parse
 6 import json
 7 
 8 def fanyi(keyword):
 9     base_url = http://fanyi.baidu.com/sug
10 
11     # 构建请求对象
12     data = {
13         kw: keyword
14     }
15     data = parse.urlencode(data)
16 
17     # 模拟浏览器
18     header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}
19 
20     req = request.Request(url=base_url,data=bytes(data,encoding=utf-8),headers=header)
21     res = request.urlopen(req)
22 
23     # 获取响应的json字符串
24     str_json = res.read().decode(utf-8)
25     # 把json转换成字典
26     myjson = json.loads(str_json)
27     info = myjson[data][0][v]
28     print(info)
29 
30 if __name__==__main__:
31     while True:
32         keyword = input(请输入翻译的单词:)
33         if keyword == q:
34             break
35         fanyi(keyword)

代码运行

 技术分享图片 

Python爬虫教程-实现百度翻译

原文:https://www.cnblogs.com/pypypy/p/11945379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!