该代码不能同时使用多个关键字
例如keyword1 keyword2 keyword3引用了错误的URL格式:
/get_all_related/keyword1%20keyword2%20keyword3
代替此
/get_all_related/keyword1+keyword2+keyword3
如何获取所需的URL格式?
此处是代码:
from flask import Flask, render_template, jsonify
from urllib.parse import quote_plus
import json
import sys
import urllib.request
app = Flask(__name__)
url = 'http://suggestqueries.google.com/complete/search?client=firefox&q={}'
@app.route('/')
def index():
return render_template('index.html')
def get_related(entity):
search_term = quote_plus('{} vs '.format(entity))
request = urllib.request.Request(url.format(search_term))
result = urllib.request.urlopen(request)
suggestions = json.loads(result.read())
return [x.replace(suggestions[0],'') for x in suggestions[1] if 'vs' not in x.replace(suggestions[0],'')]
感谢帮助
答案 0 :(得分:0)
如果search_term
中有空格,则在调用用于URI编码的函数(%20
)时会将它们转换为url.format()
。您必须先用+替换它们,然后才能将其编码为网址安全格式:
request = urllib.request.Request(url.format(search_term.replace(' ','+')))
这将用+替换所有空格,然后将整个字符串编码为URI安全。