前言
本文分为两步:
- 数据的获取 (python爬虫,以广州,数据分析师为例)
- 数据分析(这里先不用python,而是excel)
总体步骤:
数据获取——这里用python爬取前程无忧的招聘信息;
明确分析目的——你拿这数据要得到什么信息,解决什么问题;
观察数据——各个数据字段的含义,中英文释义;
数据清洗——无效值、缺失值、重复值处理,数据结构是否一致等;
分析过程——围绕目的展开分析;
制作可视化——做图表做可视化报告。
爬取数据
网址首页:https://www.51job.com/
搜索后:广州,数据分析
用Python爬取了约600条的数据分析的职位信息(因为地点限定在广州,数据量不是很大),并且将
岗位名称、公司名称、工作地点、薪水、工作经历和学历最低要求、公司类型、公司规模、公司领域 用CSV文件保存下来。
网站分析
检查源代码发现数据就在源码当中,这样就大大简化了工作。不像前程无忧各种加密了
代码
获取网页代码
import requests
from lxml import etree
url = 'https://search.51job.com/list/030200,000000,0000,00,9,99,%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='
header ={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/85.0.4183.48 Safari/537.36 Edg/85.0.564.23'
}
res = requests.get(url,headers = header)
res.text
用xpath选择出所需标签
selector = etree.HTML(res.text)
result = selector.xpath('//script[@type="text/javascript"]/text()')
result
提取出json
显然前面那个[’\r\nwindow.SEARCH_RESULT 不是属于json的,观察发现,有效信息且符合格式的在第一个 {
到最后一个
}
之间。
import re
js_str = re.search('\{.*}',str(result[0]))
js_str.group()
import json
js = json.loads(js_str.group()