package Ġcom . github . vik t orn ord ling . j apan . migration Ċ Ċ import Ġorg . apache . commons . io . FileUtils Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . select . Elements Ċ import Ġjava . io . File Ċ import Ġjava . net . URL ĊĊ Ċ object ĠDown loader Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmonth Codes Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġ" 1 1 0 1 0 3 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġto Ġ" 1 1 0 1 0 3 0 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġto Ġ" 1 1 0 1 0 3 0 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġto Ġ" 1 2 0 4 0 6 0 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġto Ġ" 1 2 0 4 0 6 0 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġto Ġ" 1 2 0 4 0 6 0 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġto Ġ" 2 3 0 7 0 9 0 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 8 Ġto Ġ" 2 3 0 7 0 9 0 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 9 Ġto Ġ" 2 3 0 7 0 9 0 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 Ġto Ġ" 2 4 1 0 1 2 1 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 Ġto Ġ" 2 4 1 0 1 2 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 Ġto Ġ" 2 4 1 0 1 2 1 2 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Starting Ġdownload .") ĊĠĠĠĠĠĠĠ Ġfor Ġ( year Ġin Ġ 2 0 1 5 .. 2 0 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( month Ġin Ġ 1 .. 1 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Files ( year , Ġmonth ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdownload Files ( year : ĠInt , Ġmonth : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġpage Ġwith Ġfiles Ġfor Ġthis Ġmonth : ĊĠĠĠĠĠĠĠ Ġprintln (" Downloading Ġfile Ġfor Ġyear : Ġ$ year , Ġmonth : Ġ$ month ") ĊĠĠĠĠĠĠĠ Ġval Ġmonth Code Ġ= Ġmonth Codes [ month ] ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// www . e - stat . go . jp / stat - search / files ? page = 1 & layout = datal ist & to uke i = 0 0 2 5 0 0 1 1 & t stat = 0 0 0 0 0 1 0 1 2 4 8 0 & cycle = 1 & year =${ year } 0 & month =${ month Code }& t class 1 = 0 0 0 0 0 1 0 1 2 4 8 1 " ĊĠĠĠĠĠĠĠ Ġval Ġdoc : ĠDocument Ġ= ĠJ soup . connect ( url ). get () ĊĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" im migration Summary " Ġto Ġ" æ¸¯ åĪ¥ ãĢĢ åħ¥ åĽ½ å¤ĸ åĽ½ äºº ãģ® åĽ½ ç± į ãĥ» åľ° åŁŁ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" em igration Summary " Ġto Ġ" æ¸¯ åĪ¥ ãĢĢ åĩº åĽ½ å¤ĸ åĽ½ äºº ãģ® åĽ½ ç± į ãĥ» åľ° åŁŁ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" im migration Details " Ġto Ġ" åĽ½ ç± į ãĥ» åľ° åŁŁ åĪ¥ ãĢĢ åħ¥ åĽ½ å¤ĸ åĽ½ äºº ãģ® åľ¨ çķĻ è³ĩ æł¼ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" migration Details " Ġto Ġ" åĽ½ ç± į ãĥ» åľ° åŁŁ åĪ¥ ãĢĢ åĩº åĽ½ å¤ĸ åĽ½ äºº ãģ® åľ¨ çķĻ è³ĩ æł¼ ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin Ġfiles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescriptor Ġ= Ġfile . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= Ġfile . key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelements : ĠElements Ġ= Ġdoc . select (" a : contains ($ descriptor )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( elements . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġelements [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexcel Link Ġ= Ġelement . parent (). parent (). children (). last (). children (). first (). attr (" href ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexcel Download Url Ġ= Ġ" https :// www . e - stat . go . jp ${ excel Link }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFileUtils . copy URL ToFile ( URL ( excel Download Url ), ĠFile ("${ fileName }_${ year }_${ month }. xls "), Ġ 1 5 0 0 0 , Ġ 1 5 0 0 0 ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( excel Link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Did n 't Ġfind Ġexactly Ġone Ġmatch Ġfor Ġ$ year , Ġ$ month , Ġ$ descriptor ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ ĠDown loader . run () Ċ // ĠĠĠ ĠDown loader . download Files ( 2 0 1 9 , Ġ 7 ) Ċ } Ċ