爬虫采集

爬虫采集

.采集智联招聘信息进行分析

采集地址:

http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=%E5%A4%A7%E6%95%B0%E6%8D%AE&sm=0&p=1

采集结果导入Hive,以下分析使用Hive SQL操作

分析工资最高的前3名职位(薪酬为范围时取平均值)

分析需求量最高的大数据前3名职位

分析大数据职位需求量最高的前3大行业(公司行业)

以上分析结果通过Zeppelin展示

有其他分析加分

===============================================================================

首先,将爬虫出来的数据上传到远程服务端。解决方案:

方案一:

1.rz –y查看是否可以CRT自己上传(一般只能小文件)

如果不可以出现如下:

那就安装:yum –y install lrzsz

安装成功后:rz –y会出现如下窗口:

选中文件->添加->确定就可以了。

方案二:

在CRT上:选项->会话选项->端口转发->添加->如图:

图中本地IP:127.0.0.1;端口:任意但不能重复。远程目的主机IP,端口22.确定。

最后选择上传的文件(一般大文件)。

 

 

其次,将爬虫出来的数据保存为csv格式,爬虫出来的数据是中文,到自己的CRT上会出现乱码。解决方案:

一。CRT修改

  1.选项->会话选项->外观->字符编码:UTF-8

 

二。命令修改:

1.cd到自己上传的数据文件(如图albert.csv):

2.查看数据文件类型(如图UTF-16):

3.修改数据文件类型(复制iconv -f UTF-16-t UTF-8 albert.csv -o albert_new2.csv):

4.查看是否修改成功:

5.断开重启

6.cat 复制的文件:

作业全过程:

1.新建任务(高级模式采集)

 2.新建网页

  3.”下一个”循环

4.效果展现

 

 

 

 

 

 

 

 

5.创建一个元素列表处理一组元素

 6.扩展

 

 

 

 

 

 

 7.选择添到列表

8. 选择元素

 

 

 

 

 

 

9. 扩展

10.添加到列表后的效果,创建列表完成

 

 

 

 

 

 

11.循环

 12.选择元素

 

 

 

 

 

 

 13.选择这个元素文本

 14.效果显示

 

 

 

 

 

 

15继续选择下一个文本.

 16.点击这个元素进入下一个去选择元素

 

 

 

 

 

 

17.到了新页面后选择元素

 18.选择需求文本

 

 

 

 

 

 

19. 选择下一个文本

 20.文本选完效果下一步

 

 

 

 

 

 

 

 

 

 

21.下一步

 22.启动单机选择

 

 

 

 

 

 

 

 

 

 

23.正在采集

24.停止

25.导出

26.数据在桌面,然后根据前面的上传方法上传到中(rz -y),上传后的Csv格式为UTF-16,根据上文内容改成UTF-8(iconv -f UTF-16 -t UTF-8 作业.csv -o 作业_new.csv),cat一下内容如图:(收集了1000多条)

1.进入hive

2.创建表格

create table demo

(position string ,wages string ,postype string ,company string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ',';

3.从root导入数据

load data local inpath '/hadoop_test/albert/test.txt' overwrite intotable demo;

4.查看导入的数据

select * from demo;

5.去除多余的“”符号

insert overwrite table demo select regexp_replace (position,'"',''),regexp_replace(wages,'"',''),regexp_replace(postype,'"',''),regexp_replace(company,'"','') from demo;

6.结果

以上是把数据收集到了,之后根据需求开始分析:

一、 分析工资最高的前3名职位(薪酬为范围时取平均值):

1.先创建表格position来存储职位和工资:

create table position

(position string,min string,max string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '-';

2.再从Demo导入数据:

insert into position(position,min) select position,wages from demo;

显示效果:

3.在创建一个表格来存储职位最小最大工资和平均工资:

create table work1

(position string,min string,max string,avg string)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '|';

4.再导入数据:

insert into work1 select *,(min + max)/2 as avg  from position;

显示效果:

5.去Zeppelin显示结果:大数据项目培训老师(125000.5)、大数据总监(85000.5)、

大数据平台首席架构师(60000.5

二、分析需求量最高的大数据前3名职位:大数据开发工程师(75)、大数据工程师(28)、大数据研发工程师(20)

三、分析大数据职位需求量最高的前3大行业(公司行业)

互联网/电子商务(284)、计算机软件(220)、IT服务(系统/数据/维护)

总结 :查询字符如果是数字就要bigint,如果是其他的就会错了

 



你可能感兴趣的:(大数据学习笔记)