使用webbrowser模块打开Google搜索时遇到问题
你好,我现在正在跟着一个Python脚本做一个简单的谷歌搜索。我在看这个视频,一行一行地跟着写代码。问题是,我的代码会打开一个新标签页,带我到谷歌的首页,但并没有真正执行搜索。奇怪的是,搜索的内容出现在网址里,但似乎没有其他反应来确认我的搜索。希望能得到一些帮助,谢谢。
这是Python脚本的代码
import webbrowser
new = 2
tabUrl = "http://google.com/?#q=";
term = raw_input("Enter search query: ");
webbrowser.open(tabUrl+term,new=new);
4 个回答
0
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,我们希望程序能做出反应。这种情况就需要用到“事件处理”。
事件处理就是程序监听某些事件,比如鼠标点击、键盘输入等,然后根据这些事件来执行相应的代码。可以把它想象成一个人站在门口,随时准备迎接来访的客人。一旦有客人来了(也就是事件发生了),这个人就会根据客人的需求来做出反应。
在编程中,我们通常会写一些代码来定义这些事件发生时要执行的操作。这样,当事件发生时,程序就会自动执行这些代码,完成我们想要的功能。
总之,事件处理就是让程序能够对用户的操作做出反应,从而实现交互性。这样,用户在使用程序时就能有更好的体验。
import webbrowser
base_url =
"http://www.google.com/search?q="
query = input("Please enter your search query: ")
webbrowser.open_new(base_url+query)
1
试试这个简单的代码:
import webbrowser
base_url = "http://www.google.com/?#q="
query = input("Please enter your search query: ")
final_url = base_url + query.replace(" ","%20")
webbrowser.open_new(final_url)
1
4
这里有个问题:当你输入一个单词作为查询字符串(比如“python”)时,你的代码运行得很好。但是,如果你想搜索多个单词(比如“python webbrowser module”),就会遇到麻烦。因为搜索词中有空格,所以在生成的URL中也会有空格。有些浏览器和操作系统,比如我现在用的Ubuntu 14.04上的Firefox 28,可以很好地处理这些空格。但其他一些可能就不行了。你可以考虑使用urllib.quote()
这个函数,把那些不合适的字符,比如空格、逗号、撇号等等,转换成它们在URL中对应的格式,比如把空格变成%20
。
from urllib import quote
import webbrowser
new = 2 # not really necessary, may be default on most modern browsers
base_url = "http://www.google.com/?#q="
query = raw_input("Please enter your search query: ")
final_url = base_url + quote(query)
webbrowser.open(final_url, new=new)