Python爬虫:爬取拉勾网职位信息存入excel
2016-11-01 本文已影响1260人
阳光依然打在地上
校招进入火热状态,学人力资源管理的我想了解当前全国HR职位情况的相关数据,所以将近期爬虫目标瞄准了拉勾网 [坏笑]
校招季跪求offer前期准备
打开拉勾首页,按F12进入页面调试模式,关注network
标签。我们要获取的是网站中所有HR岗位的相关信息,可以发现,所有数据都是通过json来传递的。
实现翻页
点击下一页,观察页面变化,可以发现每点击一个页面,就多了一个"position... .json"的请求,仔细观察,可以发现是post数据中pn
(即PageNumber)发生了变化。
源代码
#!user/bin/python#
-*- coding:utf-8 -*-
import json
import requests
import xlwt
#解决编码问题
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#获取存储了职位信息的json对象,遍历获得公司名、职位、待遇等信息
def get_json(url,page):
datas = {"first": "true",
"pn": page, #pn变化实现翻页
"kd": "HR" }
s = requests.post(url, data=datas).json() #reqquests获得json对象
info_list = []
jcontent = s["content"]["positionResult"]["result"]
for i in jcontent:
info = []
info.append(i["companyFullName"])
info.append(i['companySize'])
info.append(i['positionName'])
info.append(i['education'])
info.append(i['financeStage'])
info.append(i['salary'])
info.append(i['city'])
info.append(i['district'])
info.append(i['positionAdvantage'])
info.append(i['workYear'])
info_list.append(info)
print json.dumps(info_list, ensure_ascii=False, indent=2)
return info_list
#实现翻页,结果写入excel文件
def main():
url="http://www.lagou.com/jobs/positionAjax.jsonneedAddtionalResult=false"
page=1
info_result=[]
title = ['公司全名', '公司规模', '职位名称', '教育程度', '融资情况', "薪资水平", "城市", "区域", "优势", "工作经验"]
info_result.append(title)
while page < 31:
info=get_json(url,page)
info_result=info_result+info
page+=1
workbook = xlwt.Workbook(encoding="utf-8")
booksheet = workbook.add_sheet('HR', cell_overwrite_ok=True)
for i, row in enumerate(info_result):
for j, col in enumerate(row):
booksheet.write(i, j, col)
workbook.save('HR.xls')
if __name__=="__main__":
main()
结果展示
拉勾网HR职位信息自学Python四个月,写爬虫时参考了无数前辈大牛们的博客,如果没有他们的无私共享也就没有自己能运行成功的代码了。So,分享使人快乐。
欢迎各路大神提出建议共同交流,促进编程小白更快成长。O(∩_∩)O谢谢~
——以玩编程为乐的妹子一名