我試圖找出使用請求模塊在網站中使用搜索關鍵字生成分數 url 的任何方法。例如,當我820 HABGOOD ST City of White Rock在這個網站的搜索欄中輸入這個地址時,我得到這個分數 url。
我在 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())
產生(那里沒有 slug 或 score url):
{'query': '820 HABGOOD ST City of White Rock', 'suggestions': [], 'entities': True}
如何使用搜索框中的地址生成分數 url?
uj5u.com熱心網友回復:
你錯過了很好的要求:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/381174.html
