初次抓取火車票查詢數據時,采用的是正常的瀏覽器點擊查詢使用的鏈接:
但是用urllib抓取到的數據發現並沒有網頁上顯示的余票數據,后來發現,余票信息與上面網頁信息並非同步傳輸到客戶端,如下圖:
通過上圖,發現最開始得到的數據並不包括余票信息等,如下圖為前200ms所獲取的信息。
下圖為獲取余票信息的時間段:
二者獲取時間並不同步,用python的urllib抓取時得到的網頁信息僅僅是前200ms時的鏈接所獲取的信息。而init這個請求所得到的數據中不包含余票信息。
而真正獲取余票信息的請求鏈接為上圖,鏈接地址為Link。
下面對query請求獲取的數據進行分析,以上面鏈接為例,抓取到的數據如下:
{"httpstatus":200,"data":{"result":["vofXmbbkb1Nz8xM%2BkuCKGhjAUqN9iDoOKQBVX178kNXx0sXtYXs7MuuhrlWKfv5wE0RdYqo2JXZ4%0AOQAynYKINe29oVR0J6TOmtq0hS2LEE7t12V7OB4Kv86QD1fKdREhPCLTwU0Kxi8svm3v5azja38l%0AWP%2BYCYJEEhgM7HPTXNRyy02jGwFvJp50WBfT2lRgHhkI2qu159Mk6a49LQwmOS04%2FuMsqTvp9xKT%0AWeIDfaZsy3H6LyV5YWbLsVb5oGF2UiMKgQnbI6IFMi2QxjICGh5rqxjV0n6M0%2BVhEqLMIic%3D|預訂|270000G69804|G698|TNV|CWQ|TNV|WHN|10:46|16:50|06:04|Y|rtsg2MhJvoiWoWway%2B1F89mW6xaNyGWfgU%2Bw6iz7udoZB7N0|20200829|3|V2|01|11|1|0|||||||||||無|無|5||O0M090|OM9|0|1||O048600000M0778500009152450005||||||1|","c61tBPxABcr0%2BpSDdYNXd21hB%2Fmz0KDLSb1xbdqPD3Ex95kqOF0XcoqeYsE1jQpru4e22DckaVAL%0AFGJFN19GxpDZ5h9Y8kYmMxad92GAtqiqcO46Zj4Fd0aMUWROhtLw%2BtjCKDk3H4klJJ1y53jjp7DJ%0AeP8G3ygKWnF4CPZGsitt4CY7merjuWLcfe5FkFTOH9e07LsYhplxSqASb41j0%2FMh%2FJFbbkITSZQB%0ArhkDBbKuoI2hYbLrHXK%2BlsdTAvvilRoxdrwudBtL4zpnI9l5jiqPazAxYXt%2BlC9Fa2%2BjXNUGaZWL%0Ai2oIFA%3D%3D|預訂|270000K90322|K903|TYV|XKS|TYV|WCN|11:11|07:39|20:28|Y|OLpiLP2sud3IFGpLky7lDsGZQXqIJaIxUsLQdpACi%2FIa7NIsREqIeGMzmh4%3D|20200829|3|V1|01|19|1|0||||無|||無||無|有|||||304010W0|3411|1|1||3026150000404095000010152500211015253000||||||1|","iDrKIiAHMN%2BjuR29zLguCtwF8VGSOR4GyRodSNlyWLGm65VockZZt8oP3KL7t2J5B0GltvOr6Jk1%0AH0GTCQ0MLWEsuIyid5XKxr26Y%2FRhjoULzREGOge3aoT7NvlfXH8WnULvhcs2lYfl7f021RVYEnSi%0APDlT8vK%2BL5YRRdNQNBCJZBK5LziqSsdB7c6To%2F4tAERi2FLHlcodMRCLAXZ5WRf7rHJAf16hBg2b%0AuVXKPxs8F9eTgHngpTQJIr2U19Ob2m10AIEcm%2F6Fqx5tCDj3YYSfVSorn0KgMvntLDu2INg%3D|預訂|270000G69405|G694|TNV|WHN|TNV|WHN|16:37|22:29|05:52|Y|WTSu%2ByhaHXiwUBTesZRJYd1cPYbcdQyPy%2Be%2F3YurDgs2G3Kh|20200829|3|V2|01|10|1|0|||||||||||有|有|9||O0M090|OM9|0|0||O048600021M0778500219152450009||||||1|","oBZGG1QY8KOmf9d%2BlMhteT416eWMNnYhpKtv6VlRDCYKJ8PxVnTHo1JUcF%2BnWgvwVS9lLipVAMQu%0ACeHjM7NVACGHVxpD96ZgjTQEexA68ffINe8iQ%2BHiMURLkR115%2F957XOksi1GJhRPcjTo0bPx%2FWi1%0AhkD8E1dkjgJ3duBt%2FkmLH0jhqHwoJ77y1Hf7YHSoSu%2FKUhgLkt6kOCi5e32cRFVZxn%2FfD%2BI0D1HQ%0AQlc7Wfcr%2Bz0HaakIOPK2%2F3O2ONNJ1V5x%2BB7WQk63gDWr1yFNH7DhT5PiT4WzpckJVlhEQqJT4v9w%0A8ztThQ%3D%3D|預訂|270000K2370G|K237|TYV|OSQ|TYV|WCN|23:19|20:35|21:16|Y|U0UT8cGClt7txSrduru2BmuZCSyAQ67EQVAWyqk7f07R3eydtzxuZcVdEJc%3D|20200829|3|V1|01|25|1|0||||無|||無||無|有|||||403010W0|4311|0|1||4046450000302965000010173500211017353000||||||1|"],"flag":"1","map":{"TYV":"太原","WCN":"武昌","WHN":"武漢","TNV":"太原南"}},"messages":"","status":true}
高鐵信息中余票數據段如下:
|無|無|5|
上面那段余票數據正好對應網頁信息中的——二等座:無;一等座:無;商務座:5;
火車信息段中的余票數據段如下:
||無|||無||無|有||
上面的余票數據正好對應網頁信息中的————軟卧:無;無座:無;硬卧:無;硬座:有;
以上數據對應關系均按順序排列,為防止數據格式更改造成使用出錯,本次記錄時間為2020/8/22。