您的位置:首页 > 理论基础 > 计算机网络

python网络爬虫入门(二)——用python简单实现调用谷歌翻译

2014-08-03 20:02 796 查看
最近在看国外的文档,有些生词不认识。就用谷歌翻译来理解,用着用着闲来无事就按F12查看了下页面的源代码。发现可以用python简单的实现下谷歌翻译的页面功能。于是先上网搜下有没有类似的文章博客,发现几篇不错的,于是参考其他代码与自己的思路,简单的实现了下翻译的功能,代码如下:

import re
import urllib,urllib2

#----------模拟浏览器的行为,向谷歌翻译发送数据,然后抓取翻译结果,这就是大概的思路-------
def Gtranslate(text):

#text 输入要翻译的英文句子
Gtext=text

#hl:浏览器、操作系统语言,默认是zh-CN
#ie:默认是UTF-8
#text:就是要翻译的字符串
#langpair:语言对,即'en'|'zh-CN'表示从英语到简体中文
values={'hl':'zh-CN','ie':'UTF-8','text':Gtext,'langpair':"'en'|'zh-CN'"}
#URL用来存储谷歌翻译的网址
url='http://translate.google.cn/'
#将values中的数据通过urllib.urlencode转义为URL专用的格式然后赋给data存储
data = urllib.urlencode(values)
#然后用URL和data生成一个request
req = urllib2.Request(url,data)
#伪装一个IE6.0浏览器访问,如果不伪装,谷歌将返回一个403错误
browser='Mozilla/4.0 (Windows; U;MSIE 6.0; Windows NT 6.1; SV1; .NET CLR 2.0.50727)'
req.add_header('User-Agent',browser)

#向谷歌翻译发送请求
response = urllib2.urlopen(req)

#读取返回页面,然后我们就从这个HTML页面中截取翻译过来的字符串即可
html=response.read()

#使用正则表达式匹配<=TRANSLATED_TEXT=)。而翻译后的文本是'TRANSLATED_TEXT='等号后面的内容
p=re.compile(r"(?<=TRANSLATED_TEXT=).*?;")
m=p.search(html)
chineseText=m.group(0).strip(';')
return chineseText

if __name__ == "__main__":
#Gtext为待翻译的字符串
Gtext='you should believe yourself,you are the best one! and we sure that you will do something making us being proud of you'
print('The input text: %s' % Gtext)
chineseText=Gtranslate(Gtext).strip("'")
print('Translated End,The output text: %s' % chineseText)
在IDLEz中运行后:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: