赞
踩
本文从拉勾网爬取深圳市数据分析的职位信息,并以CSV格式保存至电脑,之后进行数据清洗,生成词云,进行描述统计和回归分析,最终得出结论。
Python版本: Python3.6
requests:下载网页
math:向上取整
time:暂停进程
pandas:数据分析并保存为csv文件
matplotlib:画图
statsmodels:统计建模
wordcloud、scipy、jieba:生成中文词云
pylab:设置画图能显示中文
打开Chrome,在拉勾网搜索深圳市的“数据分析”职位,使用检查功能查看网页源代码,发现拉勾网有反爬虫机制,职位信息并不在源代码里,而是保存在JSON的文件里,因此我们直接下载JSON,并使用字典方法直接读取数据。
抓取网页时,需要加上头部信息,才能获取所需的数据。
def get_json(url,num):
‘’‘’‘从网页获取JSON,使用POST请求,加上头部信息’‘’
my_headers = {
‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36’,
‘Host’:‘www.lagou.com’,
‘Referer’:‘https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput=’,
‘X-Anit-Forge-Code’:‘0’,
‘X-Anit-Forge-Token’: ‘None’,
‘X-Requested-With’:‘XMLHttpRequest’
}
my_data = {
‘first’: ‘true’,
‘pn’:num,
‘kd’:‘数据分析’}
res = requests.post(url, headers = my_headers, data = my_data)
res.raise_for_status()
res.encoding = ‘utf-8’
page = res.json()
return page
在搜索结果的第一页,我们可以从JSON里读取总职位数,按照每页15个职位,获得要爬取的页数。再使用循环按页爬取,将职位信息汇总,输出为CSV格式。
程序运行如图:
抓取结果如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。