利用C# CefSharp Python采集某網站簡歷並自動發送邀請短信


以往爬蟲沒怎么研究過,最近有個需求,要從某網站采集敏感信息,稍稍考慮了一下,決定利用C# Winform和Python一起來解決這個事件。

整個解決方案不復雜:C#編寫WinForm窗體,進行數據分析和采集, Python本來不想用的,一下子沒找到C#下Woff字體轉Xml的方案,而網上Python的則有很多,所以就加了一個Python項目,雖然就1個腳本。

 

一、幾個步驟:

  首先要模擬登錄,登錄完了進入簡歷采集,然后模擬下載,下載完了以后就可以看到求職者的電話了。

  這個電話號碼是使用動態生成的Base64字體,所以直接提取文字是無法成功的。

  1、先將Base64轉成Woff字體,這個可以用C#完成(這其中的iso-8859-1編碼是個坑,一般用Default會出現驚喜):

            SetMainStatus("正在生成WOFF...");
            byte[] fontBytes = Convert.FromBase64String(CurFont);
            string fontStr = Encoding.GetEncoding("iso-8859-1").GetString(fontBytes).TrimEnd('\0');
            StreamWriter sw2 = new StreamWriter(@"R58.woff", false, Encoding.GetEncoding("iso-8859-1"));
            sw2.Write(fontStr);
            sw2.Close();

  2、再將已經生成的Woff轉成XML(WoffDec.exe是我用Python打包的Exe,其實有點小題大做了,為了這一個轉化專門打了一個包,有時間還是整一個C#下面的好) 

            //調用python exe 生成xml文件
            ProcessStartInfo info = new ProcessStartInfo
            {
                FileName = "WoffDec.exe",
                WindowStyle = ProcessWindowStyle.Hidden
            };
            Process.Start(info).WaitForExit(2000);//在2秒內等待返回

整個WoffDec.py的代碼就3行:

from fontTools.ttLib import TTFont
font = TTFont('R12.woff')
font.saveXML('R12.xml')

這個打包是有點意思的,先試了py2exe,不成功,換pyinstaller, 成了,連EXE一起有11M,也不是很大。

https://github.com/pyinstaller/pyinstaller 下載,或者在VS2017 Python環境下搜索PyInstaller直接安裝。

右鍵使用“打開此處的命令提示符”;輸入pyinstaller /path/to/yourscript.py即可打包成一個exe文件。在Winform應用調用時,應該整個文件夾都拷貝過去。

  3、XML文件有了以后,以上面的Woff文件為基准准備為一個數據字典存儲起來(這個地方有點繞,先找一個網站把Woff顯示成文字和編碼,然后根據編碼在XML中查找它的字體定位點,我取的X和Y組成唯一值(X,Y就代表一個字),當然也可以取更多;

        internal static readonly Dictionary<string, string> DicChar = new Dictionary<string, string>()
        {
            {"91,744","0" },
            {"570,0","1"},
            {"853,1143","2" },
            {"143,259","3" },
            。。。。。。
        };        

  4、上面這一步是要花點時間的,基准字典有了以后,就可以按每次生成的XML文件來進行匹配真實文字了。

  5、真實文字取出后面的就簡單了,直接采集到數據庫,再連上短信發送業務,就可以自動群發了。

二、使用場景

  上班后開啟采集服務即不用再理會,由系統每間隔一段時間自動下載簡歷,並自動推送面試邀請短信。只要有新人發布對口的求職信息,系統就會馬上給他發送邀請,實為搶人利器。

 

BTW:網頁模擬操作使用的CEFSharp將另開一章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM