![](https://camo.githubusercontent.com/c81618c8ca52e16324ba2d73d0f16efef3325796edd64fd0c068c10680b31681/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e31312d677265656e2e737667)
设计一个图形界面,可以输入一个岗位名称,从boss直聘网抓取招聘岗位的数据(至少包括岗位名称、工作区域、招聘单位、薪酬、工作经验年限、学历、岗位关键字),并保存到MongoDB数据库或redis数据库中,能通过图形展示该岗位在不同城市的薪酬水平。
- 设计图形界面,使用 tkinter 进行图形化界面设计
- 用户可以输入岗位名称,点击运行按钮运行爬虫程序
- 需要获得数据(至少包括岗位名称、工作区域、招聘单位、薪酬、工作经验年限、学历、岗位关键字)
- 保存数据到MongoDB或者Redis,在 Scarpy框架的 pipelines 中进行数据库操作,使用pymongo模块或者redis模块
- 图形展示该岗位在不同城市的薪资水平,使用条形图进行展示,使用 matplotlib 模块中的 figure 函数生成条形图
字段名 |
数据类型 |
字段描述 |
jobkwd |
String |
搜索岗位名 |
jobName |
String |
岗位名称 |
cityName |
String |
工作区域 |
companyName |
String |
招聘单位 |
salaryDesc |
String |
薪酬 |
jobExperience |
String |
工作经验年限 |
jobDegree |
String |
学历 |
字段名 |
数据类型 |
字段描述 |
f |
Object |
条形图对象 |
host |
String |
MongoDB IP |
port |
Numbers |
MongoDB 端口 |
db_name |
String |
数据库名 |
client |
Object |
MongoDB 连接对象 |
collection |
Object |
MongoDB 集合对象 |
data_df |
Object |
pandas 数据对象 |
data_df_meigong_keyword |
list |
对应搜索岗位数据列表 |
data_df_meigong_keyword_salary |
list |
对应搜索岗位工资列表 |
process |
Object |
线程对象 |
root |
Object |
tkinter对象 |
lable_value |
Object |
tkinter状态 |
entry |
Object |
tkinter输入框 |
- 配置Scrapy框架运行环境,配置变量
- 岗位搜索页反爬下载中间件
- 运行爬虫程序
- 根据爬取岗位名称爬取岗位信息
- 根据网站反爬机制设置对应的反反爬策略
- 构建Item 传递pipelines
- pipelines存入MongoDB
- 使用tkinter模块生成GUI界面
- 构建tkinter输入框获得爬取岗位名,按钮点击运行爬虫程序
- 爬虫模块运行结束后,运行条形图模块
- 将条形图模块生成的条形图展示在GUI界面
- 连接MongoDB数据库
- 获取条形图所需要的数据(城市|薪酬)
- 构建条形图需要的数据对象(x轴:城市|y轴:薪酬平均水平)
- 将数据对象传入条形图对象
- 绘制条形图
- 保存绘制的条形图