如何在Python中通过Webbrowser命令获取“ +”?

时间:2018-12-29 04:15:46

标签: python-3.x

我正在创建一个脚本来帮助一些数据聚合。在将其余搜索字词添加到列表中之前,我正在尝试进行测试。如果运行脚本,它将使用打印命令在屏幕上完全按照我的需要显示搜索词(字符串中包含+),但是在浏览器中却缺少+。 ,它只是在它们之间插入了术语和空格。运行代码显示了与屏幕和Chrome浏览器的区别。谁能帮我找出原因? 谢谢!!

我曾尝试使用“ +” +,但仍无法进入浏览器

import webbrowser

input = input("Enter item> ")
searchterms =["price + availability + made in + year created + "]
price = searchterms[0] + input

print (price)
webbrowser.open_new_tab('http://www.google.com/search?btnG=1&q=%s' %  price)

我希望chrome的输出中包含用+分隔的术语和变量 例如,如果您在屏幕上输入“锤子”项目,则会显示 价格+供货情况+制造时间+制造年份+锤子 但在浏览器中显示 当年价格可用性创造了锤子

2 个答案:

答案 0 :(得分:2)

+通常用于表示URL中的空格,我认为其中包括Google。如果要使用文字+,则可以改用%2B。 ({2B+的十六进制ASCII码。)

答案 1 :(得分:0)

一旦知道了URL编码的名称,它就会更容易搜索。有关如何在Python中执行此操作,请参见How to urlencode a querystring in Python?

在您的特定情况下,这将起作用:

#!/usr/bin/env python

import urllib.parse
import webbrowser

item = input("Enter item> ") # Rename the variable not to shadow `input()`
searchterms = "price + availability + made in + year created + " # No need for an array
search_query = urllib.parse.quote_plus(searchterms + item) # quote_plus() turns spaces into plus

print("Searching for '%s'..." % search_query)
webbrowser.open_new_tab('http://www.google.com/search?btnG=1&q=%s' % search_query)

另请参阅:https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plus