是否有谷歌用于编码其搜索查询的特定编码?

时间:2018-02-02 02:19:42

标签: python google-chrome

让我解释一下:

我在python中构建了一个url解析器(源代码包含在底部),我试图在URL中查找搜索查询。通过观察,我发现" +"在搜索查询中转换为" " s,但当我在键盘上键入所有字符时,我注意到还有其他新字符,如%21。 Google中的搜索查询是否有任何特定的编码?

url解析器源代码:

>>

1 个答案:

答案 0 :(得分:1)

当某些字符无法逐字插入URL时,会使用

Percent encoding。 例如,?表示查询字符串的开头,并且无法明确地解析https://example.org/foo?bar?baz。 这些特殊字符编码为百分号,字符的ASCII代码点以十六进制编码。例如:

In [4]: ord(' ')
Out[4]: 32

In [5]: hex(ord(' '))
Out[5]: '0x20'

Python已经有一个用于解析查询字符串的内置库:

from urllib.parse import parse_qs

def parseUrl(url):
    params = parse_qs(url)

    if 'client' in params:
        browser = params['client'][0]
        print('[+] Found browser:', browser)

    query = params['q'][0]
    print('[+] Found search term:', query)

    return query