香港勞工處網頁資料提取
2011年 12月 21日, august
最近准备找工作,有一个需求:我希望我在劳工处看中某个工作时,只要输入这个工作的id之类的,然后程序就自动帮我生成应征邮件,寄出,再将工作的资料储存到数据库方便以后查看。
为什么我有这样的需求?因为懒。
众所周知,应征邮件是有模板的,需要替换的也就职业公司之类的,所以程序绝对可以自动完成。
难就难在提取工作资料这里。
下面是劳工处的工作职位列表:
而我需要的是右下角部分的内容。
查看源码:
是用f_getJobCard()这个js函数来获取内容。里面的一串字符应该就是每个工作职位的id之类的。
然后再查看js文件。
jobcard_20110624.js里的f_getJobCard函数。
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | function f_getJobCard(p_ordNo) { var v_random = Math.floor(Math.random() * 5); var v_liveOnly = true; if (g_jobCardInPrintMode == false) { v_liveOnly = f_getQueryString("live"); } switch (v_random) { case 0: { g_quickviewWS = '/1/0/WebServices/QuickviewWS.asmx'; break; } case 1: { g_quickviewWS = '/1/0/WebServices/Quickview1WS.asmx'; break; } case 2: { g_quickviewWS = '/1/0/WebServices/Quickview2WS.asmx'; break; } case 3: { g_quickviewWS = '/1/0/WebServices/Quickview3WS.asmx'; break; } default: { g_quickviewWS = '/1/0/WebServices/Quickview4WS.asmx'; break; } } $.ajax({ type: "POST", async: false, url: g_quickviewWS + "/F_GetJobCardDetail", contentType: "application/json; charset=utf-8", data: "{p_ordNo:'" + p_ordNo + "',p_langOpt: '" + g_langOpt + "',p_liveOnly: '" + v_liveOnly + "'}", dataType: "json", success: f_getJobCard_Succeeded, error: function(xhr, ajaxOptions, thrownError) { // alert(xhr.status); // alert(thrownError); if (g_jobCardInPrintMode == false) { $('#' + g_ies_uxErrMsg_id).show(); $('#' + g_ies_uxJobCardArea_id).hide(); $('#' + g_ies_uxJobCardPt2Note_id).hide(); } } }); } |
我看不明白上面为什么请求地址用random来决定,负载均衡?不过算了,反正用那个也行。知道url和请求的数据格式,就可以用curl来取数据了。
我是用codeigniter的一个curl库来写的,不过大致意思差不多,片断如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | /** * Get jobcard information * * @access public * @param string * @return array */ function get_jobcard( $jobcard = '') { $url = 'http://www1.jobs.gov.hk/1/0/WebServices/Quickview4WS.asmx/F_GetJobCardDetail'; $this->curl->open(); $headers = array ( 'Content-Type: application/json; charset=utf-8' ); $postfields = '{p_ordNo:"' . $jobcard . '",p_langOpt:"2",p_liveOnly:"ture"}'; $content = $this->curl->http_post($url, $postfields, $headers); $this->curl->close(); //var_dump($content); $obj = json_decode($content); return $obj->{'d'}; } |
注意post的数据要是json格式,其中$jobcard就是id之类的一串的字符,ajax返回的是json格式的数据,函数里转换成了数组。
var_dump返回的数据如下
1 | object(stdClass)#16 (1) { ["d"]=> array(20) { [0]=> string(17) "36-11-0015574 CM " [1]=> string(10) "20/12/2011" [2]=> string(15) "電腦技術員" [3]=> string(9) "零售業" [4]=> string(38) "黃金電腦速遞(香港)有限公司" [5]=> string(9) "天水圍" [6]=> string(61) "提供客戶電腦維修服務,協助店舖電腦零售服務" [7]=> string(60) "中三程度; 一般粵語; 懂讀寫中文; 懂電腦維修" [8]=> string(72) "每月$8,000 - $9,000, 上午11時至下午9時, 每週工作6天,輪休" [9]=> string(175) "求職者請親臨觀塘開源道68號觀塘廣場M樓18號舖黃金電腦速遞(香港)有限公司面試。查詢請致電與陳先生(96816007)/余小姐(96816004)聯絡。" [10]=> string(1) "-" [11]=> string(4371) "如何應徵?空缺咭上有僱主的聯絡資料..." [12]=> string(1) "1" [13]=> string(2) "-1" [14]=> string(1) "N" [15]=> string(4) "8000" [16]=> string(1) "0" [17]=> string(4) "1300" [18]=> string(10) "20/12/2011" [19]=> string(32) "czk0VEJNZy96M1ZuL2ttYVdsZ2Zqdz09" } } |
数据取出来之后,之后…之后你想怎样就怎样了,发email和存入数据库那里不说了。
也就是说,我只要将看中的工作的类似id的字符串输入程序,然后就可以自动生成了邮件连同简历帮我发送出去,再将工作的资料储存在数据库中方便以后查看。
一键式搞掂。
暂无评论
