python爬虫百度翻译
火狐浏览器F12开发者模式中,找到了url='http://fanyi.baidu.com/v2transapi'
使用requests包的post功能,传入查询的字典格式的数据。
最后解决了用三五次就报错的bug--输入时间参数'time':time.ctime()
代码在最后,python3。
效果图如下:
随便截个图
# -*- coding: utf-8
-*-
"""
Created on Thu Dec 28
08:54:52 2017
百度翻译爬虫,有缺点--不知道为什么用几次之后就会出现错误
上面的错误post的data里面添加'time':time.ctime就不会出现了
@author: Ja
"""
import
requests
import time
query = 0
while True:
translat_format =
input('请输入你想翻译的语言,英译中请输入1,中译英请输入2,退出请输入"quit"\n:')
if translat_format == '1':
query =
input('请在B一声后输入需要翻译的英文内容\nB~~:')
print('请稍等...正在查询')
time.sleep(2)
if query
!= 'quit':
url =
'http://fanyi.baidu.com/v2transapi'
data = {
'from':'en',
'to':'zh',
'query':query,
'transtype':'realtime',
'simple_means_flag':'3',
'time':time.ctime()}
#'sign':'54706.276099',}
#'token':'f0538c483f07c08656456cd69787db6c'}
headers
={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153
Safari/537.36 SE 2.X MetaSr 1.0'}
r1 =
requests.post(url,data,headers = headers)
#head = r1.headers
#print(head)
print('翻译结果是:%s' %
r1.json()['trans_result']['data'][0]['dst'])
elif translat_format == '2':
query =
input('请在B一声后输入需要翻译的中文内容\nB~~:')
print('请稍等...正在查询')
time.sleep(2)
if query
!= 'quit':
url =
'http://fanyi.baidu.com/v2transapi'
data = {
'from':'zh',
'to':'en',
'query':query,
'transtype':'realtime',
'simple_means_flag':'3',
'time':time.ctime()}
#'sign':'54706.276099',}
#'token':'f0538c483f07c08656456cd69787db6c'}
headers
={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153
Safari/537.36 SE 2.X MetaSr 1.0'}
r1 =
requests.post(url,data,headers = headers)
#head = r1.headers
#print(head)
print('翻译结果是:%s' %
r1.json()['trans_result']['data'][0]['dst'])
elif translat_format == "quit":
print('感谢使用,即将退出!')
time.sleep(0.5)
break
else:
print('请重新输入!')