我想查查火车时刻表。火车有一个GPS,它们的位置会在https://trenesendirecto.sofse.gob.ar/mapas/sanmartin/index.php上公布。我的计划是刮去火车的位置,检查它们到达车站的时间,并将这些信息发布给所有用户。
为了获得列车坐标,我用Python编写了以下脚本
导入请求,随机,字符串#Function to generate random code for rnd
def RandomGenerator():
x = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(16))
return x
# URL requests
url = 'https://trenesendirecto.sofse.gob.ar/mapas/ajax_posiciones.php'
parametros = {
'ramal':'31',
'rnd':RandomGenerator(),
'key':'v%23v%23QTUNWp%23MpWR0wkj%23RhHTqVUM'}
encabezado = {
'Host': 'trenes.sofse.gob.ar',
'Referer': 'https://trenesendirecto.sofse.gob.ar/mapas/sanmartin/index.php',
'X-Requested-With': 'XMLHttpRequest',
'Accept':'application/json, text/javascript, */*',
'UserAgent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/65.0.3325.146 Safari/537.36'
}
res = requests.get(url, params = parametros, headers = encabezado, timeout=1)
# Output
print(res.url)
print(res.headers)
print(res.status_code)
print(res.content)
输出为:
^{pr2}$
使用由浏览器中的请求生成的相同url,我得到以下信息
output from browser,这正是我想要的。在
为什么脚本不起作用?在
有没有其他方法来获取数据?在