使用C#CefSharpPython采集某網(wǎng)站簡(jiǎn)歷并且自動(dòng)發(fā)送邀請(qǐng)短信的方法

前言

創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為漾濞等服務(wù)建站,漾濞等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為漾濞企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

整個(gè)解決方案不復(fù)雜:C#編寫WinForm窗體,進(jìn)行數(shù)據(jù)分析和采集, Python本來不想用的,一下子沒找到C#下Woff字體轉(zhuǎn)Xml的方案,而網(wǎng)上Python的則有很多,所以就加了一個(gè)Python項(xiàng)目,雖然就1個(gè)腳本。

使用C# CefSharp Python采集某網(wǎng)站簡(jiǎn)歷并且自動(dòng)發(fā)送邀請(qǐng)短信的方法 

一、幾個(gè)步驟:

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

這個(gè)電話號(hào)碼是使用動(dòng)態(tài)生成的Base64字體,所以直接提取文字是無法成功的。

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

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、再將已經(jīng)生成的Woff轉(zhuǎn)成XML(WoffDec.exe是我用Python打包的Exe,其實(shí)有點(diǎn)小題大做了,為了這一個(gè)轉(zhuǎn)化專門打了一個(gè)包,有時(shí)間還是整一個(gè)C#下面的好)

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

整個(gè)WoffDec.py的代碼就3行:

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

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

https://github.com/pyinstaller/pyinstaller 下載 或者 本地下載 ,或者在VS2017 Python環(huán)境下搜索PyInstaller直接安裝。

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

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

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

4、上面這一步是要花點(diǎn)時(shí)間的,基準(zhǔn)字典有了以后,就可以按每次生成的XML文件來進(jìn)行匹配真實(shí)文字了。

5、真實(shí)文字取出后面的就簡(jiǎn)單了,直接采集到數(shù)據(jù)庫(kù),再連上短信發(fā)送業(yè)務(wù),就可以自動(dòng)群發(fā)了。

二、使用場(chǎng)景

上班后開啟采集服務(wù)即不用再理會(huì),由系統(tǒng)每間隔一段時(shí)間自動(dòng)下載簡(jiǎn)歷,并自動(dòng)推送面試邀請(qǐng)短信。只要有新人發(fā)布對(duì)口的求職信息,系統(tǒng)就會(huì)馬上給他發(fā)送邀請(qǐng),實(shí)為搶人利器。

BTW:網(wǎng)頁(yè)模擬操作使用的CEFSharp將另開一章。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。

本文標(biāo)題:使用C#CefSharpPython采集某網(wǎng)站簡(jiǎn)歷并且自動(dòng)發(fā)送邀請(qǐng)短信的方法
當(dāng)前路徑:http://www.muchs.cn/article26/gcepcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站制作、域名注冊(cè)、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管