1.本项目基于Python作为爬虫技术,使用flask作为web项目的开发框架。
2.本项目预期实现的功能有:
2.1简单的web页面展示,将需要搜索的结果使用词云,饼状图,柱状图以及表格这四种形式表现出来。
2.2输入关键字后搜索后能根据搜索结果智能推荐最合适的职位。
2.3支持多条件复杂查询,结合行业,所选城市进行综合查询。
2.4通过手动添加新词进行过滤词云内容达到更加精确人性化的结果。
3.使用的技术有:
3.1前端
3.1.1页面:HTML+CSS+JavaScript+JQuery
3.1.2前端框架:boostrap
3.1.3前端插件: echarts(用于将结果渲染程柱状图和饼状图)+dispicker(显示省市区便于选择地区) + smart-zoom(将词云图进行放大)+boostrap-Table(对爬取的职位信息展示在表格中)
3.2后端
3.2.1 基于flask的web框架
3.2.2jieba用于处理分析搜索到的岗位要求以及描述然后利用wordcloud进行生成词云
3.2.3使用BeautifulSoup对获取的网站源代码进行提取想要的内容。
3.2.4自己手写实现返回的数据类型。
3.2.5使用多线程进行爬取数据,每页数据40个职位,共十页,使用十个线程进行同时爬取缩短爬取时间,但是同时对计算机的性能提出了更高的要求。
4.目前实现的功能
4.1通过关键字搜索获取文本后经过处理生成词云然后在页面中显示出词云以及对应数据的柱状图和饼状图直观看到不同要求的差异。
4.2已在页面中写好省市区的视图页面但是查询**尚未支持所有地区查询(尚未匹配好省市区的编码)目前只支持十二个主要大城市查询,具体在static/json/cityMapingJson.json文件中有。后期可以手动添加新的城市以及对应的编码即可,不需要修改代码即可动态加载。**
4.3本项目的图片URL,文件的URL,词云图片的URL,过滤词组,添加的新词组,每个爬取标签的唯一选择器selector文本均已经写成json格式的配置文件放在项目中。当项目启动时会自动加载这些数据,并且支持手动实时更新这些json配置信息的内容而对不需要重新启动项目。比如如要进行更加精确的过滤词汇,只需要在fileAndImgPro.json中配置ignoreWords和newWords的对应值即可。
4.4目前已实现将每个工作的具体信息爬取封装好并以json格式返回给前端页面用于Table表格的渲染。
4.5对工作第一个版本尚未进行精准的文本过滤,目前只是很笨拙的分析提取。更精确的结果敬请期待下一个版本。
5.配置文件
5.1urlSettingPro.json的配置
{
"url": "https://www.liepin.com/",
"searchUrl":"https://www.liepin.com/zhaopin/",
"jobInfoLinkDiv": {"name1":".job-info h3 a"},
"jobNameDiv": {"name1": "div.title-info > h1"},
"jobCompanyNameDiv": {"name1": "div.title-info > h3 a"},
"jobSalaryDiv": {
"name1": ".job-item-title",
"name2": ".job-main-title",
"name3": ".