使用Python打开Google搜索

3

我想让我的程序打开谷歌前5个搜索结果。目前我只有一个简单的谷歌搜索生成器,它会打开一个搜索。是否有一种方法可以将5个搜索结果在新标签页中打开,然后关闭它们?

dict = readdict()

lenght = len(dict)
search_term=""
for _ in range(self.variable2.get()):
    skc=randint(0,lenght)

    word = dict[skc].split(',')

    search_term+=word[0]+" "

url = "https://www.google.com.tr/search?q={}".format(search_term)    
webbrowser.open(url)

编辑:

url = "https://www.google.com.tr/search?q={}".format(term)
webbrowser.open_new_tab(url)

如何在新标签页中打开网页?现在有人能告诉我如何点击从谷歌搜索打开的前五个结果吗? 编辑 所以我找到了一个叫做google的库来解决这个问题。

for url in search('"search_term', stop=5):

我刚刚决定使用任务结束命令关闭它们,因为Web浏览器库没有关闭窗口的命令。


为什么这个被标记为谷歌浏览器? - linusg
@whrrgarbl - 是的,那可能是一个原因。我刚看到你的答案,想起我曾经使用过open_new_tab函数 - 它在Firefox中打开了新的窗口而不是标签页,我不知道为什么。我尝试了代码片段,我的操作系统默认浏览器是Firefox,但是它却打开了InternetExplorer的新窗口 - 哎呀! - linusg
我将默认浏览器更改为Chrome、Edge、FF,但没有效果。它总是在新窗口中打开IE。 - linusg
@whrrgarbl - 奇怪,为什么他们要这样实现呢?好吧,IE已经安装在每台Windows PC上,在新的Windows安装中,据我所知没有设置默认浏览器,但是在Linux机器上会打开什么呢?IE在那里不被提供,有时候也没有安装浏览器。我想现在我会看一下源代码。 - linusg
是的,我目前使用Chrome作为默认浏览器,但将来我会使用chrome_browser = webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s") 来获得多个支持。 - Kojimosa
显示剩余2条评论
1个回答

7
使用 open_new_tab 函数:
import webbrowser
search_terms = []

# ... construct your list of search terms ...

for term in search_terms:
    url = "https://www.google.com.tr/search?q={}".format(term)
    webbrowser.open_new_tab(url)

如果浏览器支持,这将在新标签页中打开您的URL。否则,它将退回到为每个标签页打开新窗口。

如果您无法在Chrome中打开它,即使它是默认浏览器(请参见此处),请尝试将最后一行替换为:

chrome_browser = webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s")
chrome_browser.open_new_tab(url)

使用与您的Chrome安装相当的位置。

好的,这解决了一个问题,但是我怎么才能打开前5个搜索结果呢? - Kojimosa
@Kojimosa 哦,当我发布时,我认为你的主要问题是新标签页,而你已经有了URL。我不知道Google提供什么样的API,但快速搜索结果显示https://dev59.com/qnI-5IYBdhLWcg3w0cGG,https://dev59.com/w2865IYBdhLWcg3wR8ah和http://stackoverflow.com/questions/35125696/search-all-of-google-with-google-python-api可能会有用。我看到你的问题编辑了,你已经解决了那部分吗? - user812786
是的,我基本上用 Google 模块解决了大部分问题,只是没有找到正确的方法来关闭选项卡。 - Kojimosa
你无法通过webbrowser关闭特定的选项卡,请参见https://dev59.com/vl0a5IYBdhLWcg3wboTU。不幸的是,似乎你只能发出一个操作系统命令来终止所有Chrome进程。 - user812786

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接