使用C# CefSharp Python采集某網(wǎng)站簡(jiǎn)歷并且自動(dòng)發(fā)送邀請(qǐng)短信的方法
前言
以往爬蟲沒怎么研究過(guò),最近有個(gè)需求,要從某網(wǎng)站采集敏感信息,稍稍考慮了一下,決定利用C# Winform和Python一起來(lái)解決這個(gè)事件。
整個(gè)解決方案不復(fù)雜:C#編寫WinForm窗體,進(jìn)行數(shù)據(jù)分析和采集, Python本來(lái)不想用的,一下子沒找到C#下Woff字體轉(zhuǎn)Xml的方案,而網(wǎng)上Python的則有很多,所以就加了一個(gè)Python項(xiàng)目,雖然就1個(gè)腳本。
一、幾個(gè)步驟:
首先要模擬登錄,登錄完了進(jìn)入簡(jiǎn)歷采集,然后模擬下載,下載完了以后就可以看到求職者的電話了。
這個(gè)電話號(hào)碼是使用動(dòng)態(tài)生成的Base64字體,所以直接提取文字是無(wú)法成功的。
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è)文件夾都拷貝過(guò)去。
3、XML文件有了以后,以上面的Woff文件為基準(zhǔn)準(zhǔn)備為一個(gè)數(shù)據(jù)字典存儲(chǔ)起來(lái)(這個(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文件來(lái)進(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ì)我們的支持。
欄 目:C#教程
下一篇:Unity實(shí)現(xiàn)粒子光效導(dǎo)出成png序列幀
本文標(biāo)題:使用C# CefSharp Python采集某網(wǎng)站簡(jiǎn)歷并且自動(dòng)發(fā)送邀請(qǐng)短信的方法
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4826.html
您可能感興趣的文章
- 01-10C#使用Dispose模式實(shí)現(xiàn)手動(dòng)對(duì)資源的釋放
- 01-10C#3.0使用EventLog類寫Windows事件日志的方法
- 01-10C#使用windows服務(wù)開啟應(yīng)用程序的方法
- 01-10c# ArrayList的使用方法小總結(jié)
- 01-10C#使用ADO.Net部件來(lái)訪問(wèn)Access數(shù)據(jù)庫(kù)的方法
- 01-10C#使用Mutex簡(jiǎn)單實(shí)現(xiàn)程序單實(shí)例運(yùn)行的方法
- 01-10使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能
- 01-10C#中yield用法使用說(shuō)明
- 01-10C#編程和Visual Studio使用技巧(下)
- 01-10C#編程和Visual Studio使用技巧(上)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過(guò)反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁(yè)無(wú)法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過(guò)重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?