利用Python语言采集拉勾网的Python职位信息,存到MySQL,然后利用PHP做数据可视化处理。本文主要是PHP根据之前保存到mysql中拉勾职位数据做数据接口,提供给前端echarts生成各种图表。我这里是用前后端分离式的,PHP做数据接口,前端请求接口数据,前端渲染数据。
一. PHP部分
采用最新的ThinkPHP5.1.16作为开发框架,tp5.1还是很好用的。
//地区-职位柱状图
public function charts_data(){
$data = [];
$jobs= Db::name('lagou_job')->field('area,tags,education,experience')->where('tags != ""')->select();
$jobs_tags = [];
$jobs_educations = [];
$jobs_areas = [];
$jobs_experiences = [];
foreach ($jobs as $v){
// 标签
$tag = explode(';',$v['tags']);
foreach ($tag as $vv){
array_push($jobs_tags, strtolower($vv));
}
// 学历
array_push($jobs_educations, $v['education']);
// 地区
array_push($jobs_areas,$v['area']);
// 经验
array_push($jobs_experiences, $v['experience']);
}
//工作经验数组
$experience_chart = array_count_values($jobs_experiences);
arsort($experience_chart);
//地区数组
$area_chart = array_count_values($jobs_areas);
arsort($area_chart);
//学历数组
$education_chart = array_count_values($jobs_educations);
arsort($education_chart);
//标签表格数据
$jobs_tags = array_count_values($jobs_tags);
arsort($jobs_tags);
$tags_chart_legendData = array_keys($jobs_tags);
$legendData_length = count($tags_chart_legendData);
$tags_chart_selected = [];
$tags_chart_seriesData = [];
for($i=0; $i<$legendData_length;$i++){
$name = $tags_chart_legendData[$i];
$tags_chart_selected[$name] = $i<=10;
$item = ['name'=>$name, 'value'=>$jobs_tags[$name]];
array_push($tags_chart_seriesData,$item);
}
$data = [
'area_chart'=>[
'x'=>array_keys($area_chart),
'y'=>array_values($area_chart),
],
'tags_chart'=>[
'legendData'=>$tags_chart_legendData,
'selected'=>$tags_chart_selected,
'seriesData'=>$tags_chart_seriesData
],
'education_chart'=>[
'x'=>array_keys($education_chart),
'y'=>array_values($education_chart)
],
'experience_chart'=>[
'x'=>array_keys($experience_chart),
'y'=>array_values($experience_chart)
]
];
return $data;
二. 前端部分
前端我是用的layui,layui也挺好用的,很多内置样式和内置插件。
三. 项目地址
这个数据可视化里面东西是很多的,我就不一一列举了,有兴趣的可以去我的码云上爬虫数据可视化获取源码。
线上可访问的地址:爬虫数据可视化。