推荐文章:使用C# CefSharp Python采集某网站简历并且自动发送邀请短信的方法

优采云 发布时间: 2020-12-05 08:12

  使用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 DicChar = new Dictionary()

{

{"91,744","0" },

{"570,0","1"},

{"853,1143","2" },

{"143,259","3" },

。。。。。。

};

  4、上述步骤将花费一些时间。基准字典可用后,您可以根据每次生成的XML文件来匹配真实文本。

  5、检索真实文本很容易。直接采集到数据库,然后连接到SMS发送服务,您可以自动将其成组发送。

  二、使用场景

  如果下班后打开采集服务,则不必担心。系统将定期自动下载您的简历,并自动推送面试邀请短信。只要有新来者发布相应的求职信息,系统就会立即向他发送邀请,这实际上是抢人的武器。

  顺便说一句:用于Web模拟操作的CEFSharp将打开另一章。

  摘要

  以上是本文文章的全部内容。希望本文的内容对您的学习或工作具有一定的参考价值。感谢您对Script Home的支持。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线