使用网站搜索框中的地址无法生成内容 url

Failed to produce content url using an address in a search box of a website

我正在尝试找出使用请求模块生成分数的任何方法 url 使用网站中的搜索关键字。例如,当我在这个 website, I get this score url.

的搜索栏中输入这个地址 820 HABGOOD ST City of White Rock

我在 chrome 开发工具中进行了很多研究,以找到使用请求模块产生相同分数 url 的任何方法,但我最终得到了以下结果。

import requests

link = 'https://www.walkscore.com/auth/search_suggest'
params = {
    'query': '820 HABGOOD ST City of White Rock',
    'skip_entities': '0'
}

with requests.Session() as s:
    s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    s.headers['X-Requested-With'] = 'XMLHttpRequest'
    res = s.get(link,params=params)
    print(res.json())

其中产生(没有子弹或分数 url):

{'query': '820 HABGOOD ST City of White Rock', 'suggestions': [], 'entities': True}

How can I produce score url using an address in the search box?

您错过了好的请求:

GET: https://www.walkscore.com/score/820-HABGOOD-ST-City-of-White-Rock

这只是您用破折号代替空格的请求。 该请求得到 301 MOVED PERMANENTLY 并将您发送到正确的位置

import requests
from bs4 import BeautifulSoup

link = 'https://www.walkscore.com/score/'
query='820 HABGOOD ST City of White Rock'
link+='-'.join(query.split())

with requests.Session() as s:
    s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    r = s.get(link)
    soup=BeautifulSoup(r.text, 'lxml')
    print(soup.select_one('#address-header > div > div.float-left-noncleared').text)
    
>>> 820 Habgood Street  White Rock, British Columbia, V4B 4W3