需要的模块:
python web抓取通过:
webbrowser:是python自带的,打开浏览器获取指定页面
requests:从因特网上下载文件和网页
Beautiful Soup:解析HTML
Selenium:启动并控制一个Web浏览器。selenium能够填写表单,并模拟鼠标在这个浏览器中点击 >>>这个在这里
一、项目:利用Webbrowser模块的快速翻译脚本
webbrowser.open(url) 会在默认浏览器中打开这个地址
>>> import webbrowser
>>> webbrowser.open('http://wx3.sinaimg.cn/mw600/796df69bgy1g0ufuql7mdj20tp0x8dmc.jpg') #将打开这个地址
True
这大概就是 webbrowser 模块能做的唯一的事情。但利用 webbrowser.open() 并配合其他知识,可以让一些事情更简便的完成。
打算做个脚本:把剪贴板上的英文词语自动在Google翻译中打开,只需要将单词拷贝到剪贴板,运行脚本,浏览器会打开一个新标签页,显示翻译结果
程序需要做到:
从命令行参数或剪贴板中取得单词、
打开Web浏览器,指向该单词的Google翻译
即代码需要完成的工作:
从 sys.argv 读取命令行参数
读取剪贴板内容
调用 webbrowser.open() 函数打开外部浏览器
使用命令行参数 >>>参见<<<
全部代码:
#! python3
# mapIt.py - 将地址拷贝到剪贴板,运行这个脚本,就会打开goole地图中的地址页面
#修改为翻译英文单词的功能
import webbrowser
import sys
import pyperclip#假如命令行没有提供参数就翻译剪贴板中的内容
url='https://translate.google.cn/?hl=zh-CN&tab=TT#view=home&op=translate&sl=en&tl=zh-CN&text='
if len(sys.argv)>1:
url=url+sys.argv[1]
else:
url=url+pyperclip.paste()
print(url)
webbrowser.open(url)
1.1弄清楚URl
首先你要弄清楚,对于指定的单词,要到底使用怎样的URl。你在浏览器中打开 http://translate.google.com/ 并查找一个单词时,地址栏中的URL看起来像这样
https://translate.google.cn/?hl=zh-CN&tab=TT#view=home&op=translate&sl=en&tl=zh-CN&text=cute
其中cute是你想要查找的单词, sl=en&tl=zh-CN 代表你将英语翻译为汉语。其他的一些数据我猜想则是用来定制网站的。但如果我们尝试将 cute 替换为任何想翻译的英文词语,发现也是可以的即url为
https://translate.google.cn/?hl=zh-CN&tab=TT#view=home&op=translate&sl=en&a