<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我試圖(合法地)從網站導入體育數據(例如2012年倫敦殘奧會的結果)。公共站點向IPC數據庫提交查詢,並返回帶有多個表的HTML頁面,具體取決於以下組合:競賽(倫敦殘奧會);運動(田徑運動);性別(F);活動(100米); AWD級(F37);其中包括每個比賽階段(熱火/半決賽/總決賽)和熱火號碼的單獨表格。每個事件大約有20個AWD課程,通常每頁<20個表,具體取決於活動的受歡迎程度。要在JMP中部分自動執行此操作,我有一個大約360(= 20x 18)“Open”語句的腳本:
打開(
“ http://www.paralympic.org/ipc_results/results.php?competition=2004PG&gender=m&sport=athletics&discipline=&event=100%20m&eclass=T11 “
HTML表格(3)
);
對於男性100米F11(盲)組(頁面上的第三個表)。然後我通過對所有事件重複這個表來連接生成的表。我的問題是,雖然這個過程適用於允許每個類20個表的腳本(連接上述20個語句);當我嘗試包含所有18個事件(360 = 20 x 18)時,執行在第一個事件(例如100米)之後無錯誤地停止,並且不為下一個事件(200米)產生輸出。這是因為此事件/類組合中只有12個表(我不這麼認為),還是其他一些問題?(我正在使用4核,64位PC和16Gb RAM,運行WinXP)。
我很感激那些有使用網絡上“互聯網開放”選擇經驗的人的建議。
我不確定它為什麼會中斷,但可能是因為當請求數量很大時網絡連接速度越來越慢。或者請求因其他原因而失敗。
您是一次連接所有表還是一次連接一個表(然後關閉源表)?後一種方法對您的計算機要求較低。
下面的代碼似乎工作,即使事件列表擴展遠遠超出示例中的兩個事件(我使用JMP 10 for Mac並具有相當快的網絡連接)。我使用Try()來避免停止,以防每頁少於20個表。
DT = 新表 ( “所有結果” ,新欄目 ( “源表” ,字符 ) ) ;
活動列表 = { “100” , “400” } ; //此示例中只有兩個事件
對於 ( 一世 = 1 ,一世 <= N項 ( 活動列表 ) ,一世 ++,
嘗試 ( //如果沒有此事件的表,則轉義循環
對於 ( Ĵ = 1 , Ĵ <= 20 , Ĵ ++,
//嘗試(關閉(dt1,不保存)); //關閉上一個子表(如果有的話)
DT1 = 打開 (
“ http://www.paralympic.org/ipc_results/results.php?competition=2004PG&gender=m&sport=athletics&discipline=&event= “
|| 活動列表 [ 一世 ] || “%20米&的eclass = T11” ,
HTML表格 ( Ĵ )
) ;
等待 ( 0 ) ; //為JMP提供完成下載的機會,如果網絡速度慢,則增加參數
DT1 << 設定名稱 ( 活動列表 [ 一世 ] || “_表” || 燒焦 ( Ĵ ) ) ;
關口 = DT1 << 新欄目 ( “源表” ,字符 ) ;
對於每一行 ( DT1 : 關口 = ( DT1 << 得到名字 ) ) ;
DT << 串聯 ( DT1 ,附加到第一個表格 ( 1 ) ) ;
關 ( DT1 ,沒有保存 ) ; //關閉子表格
)
)
) ;