首页 > 编程知识 正文

python爬虫数据分析pdf,python网页抓取实例

时间:2023-05-04 08:09:25 阅读:37565 作者:2180

1 .引言

在这个新时代,人们基于现有的职务信息数据分析系统获得的职务信息越来越碎片化,面对收集到的大量职务信息数据,很难快速筛选出对自己最有用的职务信息,或者在筛选出信息后,数据的特征、一般规律、变化的变化本文致力于对获取数据的有效筛选和从多个角度的可视化分析,利用Python爬虫技术仿真浏览器访问职业信息网站,获取大量数据,利用Pandas实现数据清洗,pye charries 前端实现采用Html、CSS、JavaScripts,完成了用户与系统之间的交互[2]。

2 .总体设计

基于Python Pyecharts Flask的后期信息可视化系统的设计与实现要求实现数据爬网功能、数据清洗功能、数据可视化功能。 实现未来无忧职位信息的数据采集、清洗后,保存在Excel表中,推送至MySQL数据库,与Pyecharts组件相结合,实现数据到可视化图表的转换,后台支持flask fuff 用户登录注册后,可以在主页上查看Excel表中的数据详细信息和可视化图表信息。 将最近发布的招聘信息存储在MySQL数据库中,并显示在首页上,用户可以方便地搜索和查看详细信息。 简单的整个系统的体系结构设计如图1所示。

3 .详细设计

3.1 .数据获取

访问未来无忧网站以大数据职位相关数据,防止浏览器无法正常访问网站的问题,手动向header添加UA属性,冒充浏览器进行访问[3]。 打开web开发人员模式,进入network headers以找到浏览器的UA属性,然后按如下方式构建header方法:

header={

(1) host ) :需要访问的站点信息、

)2)参与访问请求,

(3)用户代理:浏览器的UA属性((4) )。

接收到URL地址的HTML页面后,使用正则表达式进行匹配字符串,利用双循环实现分页爬网和换行输出[5] [6],获取数据并保存到Excel表格中。

figure1. overallarchitecturedesignofthesystem

图1 .整个系统的体系结构设计图

3.2 .数据清洗

数据清洗部使用pandas从Excel表中读取原始数据并进行清洗。 步骤如下。

步骤1 :读取文件;

步骤2 :删除所有空行;

步骤3:for循环遍历:

3.1判断职位是否为“大数据”相关职业,如有则保留,如无则删除整行;

3.2判断信息是否匹配,匹配时保留,不匹配时删除整行;

3.3判断工资单位是否为万/月,否则保留,否则转换为万/月。

清洗算法的设计流程图如下图2所示。

figure2. flowchartofcleaningalgorithm

图2 .清洗算法流程图

清洗完数据后,将其保存到新的Excel表中并导入到MySQL数据库中[7] [8]。 获取10,000多条数据,清洗后有近4000条数据,整理后的部分数据如下表1所示。

Table 1. Summarizes some of the data

表1 .整理的部分数据

3.3 .数据分析和可视化

3.3.1 .数据分析

所有被洗表格的职位信息都必须是大数据相关的职业。 表格信息还包括公司名称、公司地点、公司性质、薪资、学历要求、公司福利和公司招聘发布时间,信息均得到正确响应。 求职者要找到合适的职位,需要对各招聘公司的学历要求、工作经验要求、公司性质、所在地区进行可视化分析。 了解什么性质的公司在招聘人才,什么性质的公司对人才的需求最多,分析公司在招聘什么样的学历和工作经验的人才更为普遍,也就是求职者需要达到的最基本要求。 另外,分析招聘公司所在地区的经济是否发达,是对公司发展和经济实力的预测,可以让求职者更准确地选择[9] [10]。

3.3.2 .学历要求玫瑰图

要求对各企业学历生成玫瑰图。 具体操作如下。

(1)读取文件

)2)编制清单,保存“学历要求”列信息;

)3) for循环遍历列表采用不同的学历要求值和. count ) )方法计算其出现次数;

((4).key ) )方法获取每个学历属性, value ) )方法获取相应的值,pie.add ),以半径为rosetype绘制玫瑰图。

可视化结果如图3所示。 玫瑰图的优势在于非常直观地看出不同学历所占的比例。 从这张图表可以看出,近七成企业对学历的要求是本科学历,25%以下的企业对学历的基本要求是大专,约5%的企业是硕士以上,极少数企业是高中和中等学校学历,几乎没有企业要求初中以下学历。 求职者根据学历

求情况去加强自身学习努力达到大多数企业的要求。

3.3.3. 工作经验漏斗图

对各个企业工作经验要求生成漏斗图。与生成玫瑰图操作类似,具体操作如下:

(1) 读取文件;

(2) 创建列表存储“工作经验”列信息;

(3) for循环遍历列表获取不同工作经验值及.count()方法计算其出现次数;

(4) .key()方法获取各工作经验属性,.value()方法获取对应的值,funnel.add()绘制漏斗图。

可视化结果如下图4所示。漏斗图的优势在于能十分清晰的看出招聘企业对于工作经验要求情况,自上而下,逐层减少。从图中不难看出企业对于3~4年工作经验是最普遍的要求,对5~7年工作经验要求的企业数量排第二,绝大多数企业对于工作经验要求至少是一年,对于曾经的故事和没有工作经验的求职者企业也会相应给一些机会,但是不多,较少企业要求求职者有8年以上的经验。

Figure 3. Rose chart for education requirements

图3. 学历要求玫瑰图

Figure 4. Funnel chart for work experience

图4. 工作经验漏斗图

3.3.4. 公司性质饼图

分析所有招聘公司的性质。对所有公司性质情况生成了饼图 [7]。操作方法如下:

(1) 读取文件;

(2) 创建列表存储“公司性质”列信息;

(3) for循环遍历列表获取不同公司性质值及其出现次数;

(4) .key()方法获取各公司性质属性,.value()方法获取对应的值,pie.add()绘制饼图。

可视化结果如下图5所示。饼图的优势就是可以清晰的看出在整个系统中各种规模的公司占比的权重。由饼图可以分析出最主流的招聘公司是合资公司,外资公司和民营公司招聘较多,然后是事业单位,上市公司和创业公司数量差不多,但均不足10%,国企占比最少。了解各个公司规模占比可以让求职者有一个更加清楚的认识,去公司规模占比大的公司求职,成功的可能性更大。

Figure 5. Pie chart for company nature

图5. 公司性质饼图

3.3.5. 公司地区分布叠柱状图

对于公司地点分布情况生成叠柱状图 [10],分析在经济较一般的地区和经济较为发达的地区各种规模公司的数量。根据各地区经济发展状况自划分为较一般和较发达,同样方法绘制两个柱状图,使用is_stack标签堆叠将两个柱状图在一起,jxdll_point标签标记经济较一般地区各类型企业数量的平均值,jxdll_line 标签标记经济较发达地区的最小/最大值。

可视化结果如下图6所示。叠柱状图的优势就是可以直观的看到各种规模的公司在两种地区的数量并形成鲜明的对比。由叠柱状图可以明显看出除创业公司和非营利公司外,其他类型的公司均是分布在经济较为发达的地区较多。给了求职者明确的地区方向。

Figure 6. Double bar charts for regional distribution of company

图6. 公司地区分布叠柱状图

3.3.6. 人才需求双折线图

对各类型的公司人才录取要求同样方法生成双折线图 [10]。统计各类企业对学历有要求和工作经验有要求的数量。

可视化结果如下图7所示。双折线图的优势在于可以清晰的看到各种类型的公司对工作经验要求和学历要求的变化趋势。从图中可以清晰的看到总体上对于学历有要求的公司数量明显要高于工作经验的要求。

Figure 7. Double line charts for the talent demand of company

图7. 公司人才录取要求图

3.3.7. 职位信息词云图

对于职业信息情况生成词云图 [7],由于爬取职位较多,选取15个职位出现频率最高的职位生成词云图给用户以视觉上的突出,操作如下:

(1) 读取文件;

(2) 创建列表存储“职位”列信息;

(3) for循环遍历列表获取不同职位值及其出现次数;

(4) 选取出现次数最高的15个职位wordcloud.add()绘制词云图。

可视化结果如下图8所示。从词云图可以看出企业对于大数据开发工程师需求是最多的。

Figure 8. Wordcloud chart for job information

图8. 职位信息词云图

4. 基于Flask的web功能实现

通过使用Flask的route()装饰器用于把一个函数绑定到一个URL,函数名称用于生成相关联的URL,并返回需要在用户浏览器中显示的信息。在首页HTML文件中,引用URL实现将可视化呈现在web页面 [11] [12]。

分别点击公司类型分布、公司规模、人才要求、学历要求、职位信息词云、工作经验要求按钮页面将跳转到相应的上述可视化图表页面,点击详情按钮,将显示数据清洗后的Excel表,将近期发布的招聘信息存入MySQL数据库中,显示在首页,可供用户简单搜索,查看详情。如下图9所示。与既有的研究成果比较,系统能较简洁直观的满足用户的基本需求。

Figure 9. First page figure

图9. 首页面图

5. 总结

利用python设计实现了职位信息数据分析和可视化系统,对前程无忧职位信息数据的爬取、清洗和可视化,实现了数据像图表的转化,使数据更有价值,并利用Flask框架实现将可视化结果呈现在web页面上,将各种数据以图表的形式呈现给用户,使繁多的数据变得直观,用户能够容易发掘隐藏的数据关联,筛选出对自己最有利的信息,做出最好的选择,此外,从多种角度进行分析,不同数据进行各不相同的可视化,利用不同可视化图表的优点,最大程度地展现数据的特征,能够给用户带来更清晰直观的体验。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。