美文网首页菜鸟学Python拉钩-爬虫-Python菜鸟
Python爬虫:爬取拉勾网职位信息存入excel

Python爬虫:爬取拉勾网职位信息存入excel

作者: 阳光依然打在地上 | 来源:发表于2016-11-01 11:14 被阅读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谢谢~
    ——以玩编程为乐的妹子一名

    相关文章

      网友评论

      本文标题:Python爬虫:爬取拉勾网职位信息存入excel

      本文链接:https://www.haomeiwen.com/subject/ophmuttx.html