Python:Google建议的格式查询

时间:2018-07-13 17:26:02

标签: python

该代码不能同时使用多个关键字

例如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],'')]

感谢帮助

1 个答案:

答案 0 :(得分:0)

如果search_term中有空格,则在调用用于URI编码的函数(%20)时会将它们转换为url.format()。您必须先用+替换它们,然后才能将其编码为网址安全格式:

request = urllib.request.Request(url.format(search_term.replace(' ','+')))

这将用+替换所有空格,然后将整个字符串编码为URI安全。