使用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,也不是很大。
下载 或者 ,或者在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将另开一章。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
上一篇: 不可多得的美味,清炒虾仁你又知道多少
下一篇: 莴笋炒肉的做法,它有着家的味道