使用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将另开一章。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
- Cefsharp使用教程四( js回调,C#方法)
- 利用Python自动监控网站并发送邮件告警的方法
- 利用Python自动监控网站并发送邮件告警的方法
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#通用类库--短信猫操作类2使用方法(原始AT命令)
- C# udpclient 发送数据断网后自动连接的方法
- 这么详细的分类 C# / C Sharp源代码网站你见过没有? C# / C Sharp中的每一个方法,每一个操作,每一个函数,每一个类.每一个属性,每一个事件都有相应的范例代码
- C#中在WebClient中使用post发送数据实现方法
- 讲解Python的Scrapy爬虫框架使用代理进行采集的方法
- 使用Python脚本实现批量网站存活检测遇到问题及解决方法
- .NET 使用C#两种发送邮件的方法
- [原创]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法
- Python中使用socket发送HTTP请求数据接收不完整问题解决方法
- C#使用自带的email组件发送邮件的方法
- C#串口采集短信GSM chart图表使用示例 保存数据到access数据库和每日.txt文件并实时显示各参数曲线
- C#HttpClient或使用CookieContainer模拟登陆后HttpRequest不发送cookie的解决方法及原因
- python代码打包dist并发送到pypi网站的方法
- python实现自动监控网站并发送邮件告警 推荐
- C#使用pos向其它网站t发送Form表单数据
- 使用python移动飞信模块发送短信