一:爬取数据
二:上传数据
三:数据分析
四:数据可视化
第一部分:数据的爬取
UP主利用bs4爬取的51招聘的招聘信息。
for i in os.listdir(a):
if len(os.listdir(a)) != 0:
path = os.path.join(a, i)
path = path.split('\')[-1]
os.remove('D:Dedupinput\' + path)
这一段代码判断文件夹里有没有已经爬取的文件,如果有就把文件删除。
def job(gw):
for i in range(20):
url='https://search.chinahr.com/bj/job/pn'+str(i+1)+'/?key='+gw
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53'}
response=requests.get(url,headers=headers)
response=response.content.decode('utf-8')
soup=BeautifulSoup(response,'lxml')
result=soup.select('div[]')
for i in result:
litest = i.li.get_text()
litest = litest.replace('n', '').replace(' ', '')
ullist=i.select('ul[]')
ulsalary=ullist[0].select('li[]')
a=ulsalary[0].text.replace('n', '').replace(' ', '')
if a!='薪资面议':
file = open('D:Dedupinput\'+gw+'.txt', 'a', encoding='utf-8')
file.write(litest+':'+a+'n')
gw=input('请输入岗位关键字')
job(gw)
这段是爬虫基础代码。
第二部分:上传数据
此处利用WinSCP,将爬取的数据放到hadoop的 /export/data 文件夹下,之后在linux(CRT)里输入如下语句:
hadoop fs -put /export/data/你爬取的文件名.txt /input
此时已经将爬取的数据文件上传到hadoop了。
进入50070网站检查文件是否上传成功。
第三部分:数据分析
此部分在eclipse中编写。
在准备好的hadoopdemo的maven文件的jsrc/main/java包里创建cn.it包,并创建DedupMapper、DedupReducer和DedupRunner三个文件。
DedupMapper进行处理文件的key-value值(数据预处理)
DedupReduce进行数据分析
DedupRunner是主程序
Map:
Text指定key(file)和value(file2)为string(字符串)类型
用a和b分别记录 :和月的位置
接下来处理爬取的数据 (未处理数据形式如下)
field.set(value.toString().substring(0,a));
field2.set(value.toString().substring(a+1,b-2));
这两句表示key(file)取到 :之前→(0,a)左闭右开
value取到:之后,元之前
处理后的数据如下:
Reduce:
此处求了各个职业的工资平均值
Runner:
runner后回到50070网站
点击part-r-00000进行下载后,将part-r-00000放到一个文件夹中。
四:数据可视化
可以用柱状图和词云图等进行操作。



