我正在创建一个脚本来帮助一些数据聚合。在将其余搜索字词添加到列表中之前,我正在尝试进行测试。如果运行脚本,它将使用打印命令在屏幕上完全按照我的需要显示搜索词(字符串中包含+),但是在浏览器中却缺少+。 ,它只是在它们之间插入了术语和空格。运行代码显示了与屏幕和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的输出中包含用+分隔的术语和变量 例如,如果您在屏幕上输入“锤子”项目,则会显示 价格+供货情况+制造时间+制造年份+锤子 但在浏览器中显示 当年价格可用性创造了锤子
答案 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