使用webbrowser模块打开Google搜索时遇到问题

-3 投票
4 回答
3441 浏览
提问于 2025-04-18 14:55

你好,我现在正在跟着一个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

试试看

tabUrl = "http://google.com/?q="

去掉那个#。从技术上讲,在这个井号后面不应该有命名参数。

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)

撰写回答