<p>此站点在<code>https://graphql.rmdprod.racing.com</code>上使用<a href="https://graphql.org/learn/" rel="nofollow noreferrer">GraphQL</a>API。API密钥需要通过头发送&检索时<a href="https://www.racing.com/layouts/app.aspx" rel="nofollow noreferrer">here</a>。你知道吗</p>
<p>以<a href="/questions/tagged/curl" class="post-tag" title="show questions tagged 'curl'" rel="tag">curl</a>、<a href="/questions/tagged/sed" class="post-tag" title="show questions tagged 'sed'" rel="tag">sed</a>&;<a href="/questions/tagged/jq" class="post-tag" title="show questions tagged 'jq'" rel="tag">jq</a>为例:</p>
<pre><code>api_key=$(curl -s "https://www.racing.com/layouts/app.aspx" | \
sed -nE 's/.*headerAPIKey:\s*"(.*)"/\1/p')
curl -s "https://www.racing.com/layouts/app.aspx"
query='query GetMeeting($meetCode: ID!) {
getMeeting(id: $meetCode) {
id
trackName
date
railPosition
races {
id
raceNumber
status
tempo
formRaceEntries {
id
raceEntryNumber
horseName
silkUrl
jockeyName
trainerName
scratched
speedValue
barrierNumber
horse {
name
fullName
colour
}
}
}
}
}'
variables='{ "meetCode": 5149117 }'
curl -G 'https://graphql.rmdprod.racing.com' \
data-urlencode "query=$query" \
data-urlencode "variables=$variables" \
-H "X-Api-Key: $api_key" | jq '.'
</code></pre>
<p>将<a href="/questions/tagged/python" class="post-tag" title="show questions tagged 'python'" rel="tag">python</a>与<a href="/questions/tagged/python-requests" class="post-tag" title="show questions tagged 'python-requests'" rel="tag">python-requests</a>一起使用:</p>
<pre><code>import requests
import re
import json
r = requests.get("https://www.racing.com/layouts/app.aspx")
api_key = re.search(".*headerAPIKey:\s*\"(.*)\"", r.text).group(1)
query= """query GetMeeting($meetCode: ID!) {
getMeeting(id: $meetCode) {
id
trackName
date
railPosition
races {
id
raceNumber
status
tempo
formRaceEntries {
id
raceEntryNumber
horseName
silkUrl
jockeyName
trainerName
scratched
speedValue
barrierNumber
horse {
name
fullName
colour
}
}
}
}
}"""
payload = {
"variables": json.dumps({
"meetCode": 5149117
}),
"query": query
}
r = requests.get(
'https://graphql.rmdprod.racing.com',
params = payload,
headers = {
"X-Api-Key": api_key
})
print(r.json())
</code></pre>