2017-02-24 23 views

回答

3

顯然,Web服務有PHPSESSID驗證,所以我們需要先得到它使用正確的用戶代理:

import requests 
import json 

headers = { 
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36' 
} 
r = requests.get('https://enjoy.eni.com/it/milano/map/', headers=headers) 
session_id = r.cookies['PHPSESSID'] 
headers['Cookie'] = 'PHPSESSID={};'.format(session_id) 
res = requests.post('https://enjoy.eni.com/ajax/retrieve_vehicles', headers=headers, allow_redirects=False) 
json_obj = json.loads(res.content) 
+0

Yohanes嗨。是的,我只是嘗試使用我的瀏覽器的PHPSESSID並運行。但我也試着通過CookieLib來檢索這個值,但是如果我通過請求響應這個網站的html而不是json – APPGIS

+0

@APPGIS的話,那麼在檢索這個值之後就可以了。我已經更新了我的答案。顯然我們只需要在第一個請求中添加'User-Agent'以獲取正確的Cookie –

+0

似乎有效......感謝Yohanes – APPGIS