上一篇介绍在linux 搭建jupter lab,本文将介绍python数据接口的爬取以及提取建模分析的数据
导入依赖的包

import requests
import time
from urllib import parse
import pandas as pd
import datetime

当你登录之后,点击首页的java,会跳入如下的链接:
https://www.lagou.com/jobs/list_Java/p-city_215&cl=false&fromSearch=true&labelWords=&suginput=
这个链接包含一下信息:
1.查找的列表是关于java的
2.要传入当前的对应深圳的cityCode=p-city_215
3.后面职位分页数据的查询依赖这个链接获取session

具体的代码如下:

'''
pages: 要爬取的总的数据页码数,这里等于30
total:pages*15
cityCode:深圳在拉勾网的代码编号
cityName:要查询的招聘的城市的信息
job:要查询的工作类型,java python go c++ 等等
'''
def main(pages,cityCode,cityName,job):# 主urlmainUrl = 'https://www.lagou.com/jobs/list_'+job+'/'+cityCode+'?cl=false&fromSearch=true&labelWords=&suginput='# ajax请求url = 'https://www.lagou.com/jobs/positionAjax.json?city='+parse.quote(cityName)+'&needAddtionalResult=false'# 请求头headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Referer': mainUrl,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36','Host': 'www.lagou.com'}# 通过data来控制翻页showid=''#定义返回结果切片ret=[]#遍历所有数据for page in range(pages):'''拉勾网分页的逻辑,当第一页码的时候data = {'first': 'true','pn': 1,'kd': job}不是第一页码的时候,增加sid列,并且设置的值为上一页码json返回的showId即 showid=respon_json["content"]["showId"]data = {'first': 'false','pn': page+1,'kd': job,'sid':showid}'''data={}if (page==0):data = {'first': 'true','pn': page+1,'kd': job}else:data = {'first': 'false','pn': page+1,'kd': job,'sid':showid}s = requests.Session()  # 建立sessions.get(url=mainUrl, headers=headers, timeout=3)cookie = s.cookies  # 获取cookie#post 请求获取json数据respon = s.post(url=url, headers=headers, data=data, cookies=cookie, timeout=3)respon_json = respon.json()#获取当前的要解析的数据result = respon_json["content"]["positionResult"]["result"]#获取到当前页码的showid,以便赋值下个页码请求data的sidshowid=respon_json["content"]["showId"]print(result)#利用pandas组装二维数组的格式for item in result:#定义一维数据切片,获取想要的属性并且赋值temp = []temp.append(item["positionName"])temp.append(item["companyFullName"])temp.append(item["companyShortName"])temp.append(item["companyLogo"])temp.append(item["companySize"])temp.append(item["createTime"])temp.append(item["salary"])temp.append(item["workYear"])temp.append(item["education"])if (item["stationname"] != None):temp.append(item["subwayline"]+"-"+item["stationname"])else:temp.append(item["subwayline"])if(item["businessZones"]!=None):temp.append(item["city"] + "-" + item["district"] + "-" + item["businessZones"][0])else:temp.append(item["city"]+"-"+item["district"])temp.append("|".join(map(lambda x:str(x),item["companyLabelList"])))temp.append("|".join(map(lambda x: str(x), item["skillLables"])))ret.append(temp)return  ret
#最终整个函数的返回值为一个二维向量

至此函数封装已经完成,下面介绍将数据导入到csv 中,以便进行数据的清洗处理

#调用函数获取返回切片结果集
ret = main(30, "p-city_215", "深圳", "java")
'''DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。
或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。
同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位,具体方法在后面细说。'''
#创建二维表
pdResult=pd.DataFrame(ret)
#将二维表数据以逗号隔开把数据写入到data_df.csv
pdResult.to_csv('data_df.csv',index=False,header=True,sep=',')#获取刚刚写入的文件
csv = pd.read_csv('data_df.csv')
#打印shape
print(csv.shape)

按照我的代码生成的文件地址data_df.csv
截图效果

python 爬取拉钩招聘数据相关推荐

  1. python 爬取拉钩数据

    Python通过Request库爬取拉钩数据 爬取方法 数据页面 建表存储职位信息 解析页面核心代码 完整代码 结果展示 爬取方法 采用python爬取拉钩数据,有很多方法可以爬取,我采用的是通过Re ...

  2. python爬取拉钩python数据分析职位招聘信息

    python数据分析 python数据分析是目前python最火的方向之一,为了解目前市场对该职位的需求,我们爬取了拉钩上对pythons数据分析的招聘信息. 环境 系统:windows7 pytho ...

  3. 【2019.05】python 爬取拉钩数据(静态+动态)

    拉钩这个网站有点意思,页面加载有两种方法 点击首页的标签,页面是静态加载的 直接搜索,页是动态加载的 两种爬取方式不一样,这里都实现了. 动态爬取时会出现 '操作太频繁,请稍后再试'字样,出现这种情况 ...

  4. 用request模块爬取拉钩招聘信息

    from urllib import request from urllib import parse# url = "https://www.lagou.com/jobs/list_pyt ...

  5. 深圳python数据分析师招聘_Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法 发布时间:2020-09-23 23:23:12 来源:脚本之家 阅读:88 进入智联招聘官网,在搜索界面输入'数据分析师',界面跳转,按F12查 ...

  6. python 爬取拉钩网数据

    python 爬取拉钩网数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/blob/master/lagou/LaGouSpider.py # ...

  7. Python 爬取拉勾招聘信息

    Python 爬取拉勾招聘信息 故事背景 最近有个好哥们啊浪迫于家里工资太低,准备从北方老家那边来深圳这边找工作,啊浪是学平面设计的知道我在深圳这边于是向我打听深圳这边平面设计薪资水平,当时我有点懵逼 ...

  8. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

  9. python爬取2019年计算机就业_2019年最新Python爬取腾讯招聘网信息代码解析

    原标题:2019年最新Python爬取腾讯招聘网信息代码解析 前言 初学Python的小伙们在入门的时候感觉这门语言有很大的难度,但是他的用处是非常广泛的,在这里将通过实例代码讲解如何通过Python ...

最新文章

  1. 【Robot学院】一文读懂世界智能制造大趋势!
  2. python基础代码-Python基础(代码)
  3. C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法。...
  4. ffmpeg开源工具的使用_如何使用开源工具和最佳实践提高在线隐私
  5. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...
  6. C++两个函数可以相互递归吗_C语言“最难啃”的三块硬骨头!你知道吗?
  7. Linux面试题(总结最全面的面试题)
  8. MATLAB画频率响应曲线(幅频特性和相频特性)并将横坐标转换为赫兹hz单位
  9. Dev-cpp5.4.0安装及下载
  10. Maven项目管理实战(二)--pom.xml
  11. Mac OS中显示及隐藏文件和文件夹的方法
  12. android 6 root权限,安卓一键root(权限获取)
  13. Python遥感开发之GDAL读写遥感影像
  14. java集合(附源码分析)
  15. SRP-PHAT综述
  16. 安装mujoco遇到一些坑
  17. signature=cf2a4ebb3fc32cddedd659609006f5f5,Таджикистан. Трудныйпутьразвития...
  18. 注册表设置计算机开机启动项
  19. .dwg转换为.svg
  20. 技术团队的组织文化、制度建设和有效沟通

热门文章

  1. SqlServer的基本使用
  2. 【STM32 x ESP8266】连接阿里云 MQTT 服务器(报文连接)
  3. 论文人强烈推荐必备的几个中英文文献网站
  4. 使用树莓派进行pH测定
  5. 名片 - 名片设计的比例
  6. 用Websocket聊天完整demo,做笔记用,各位大佬多多指教
  7. java 全角_java字符全角半角转换
  8. Swift基础(六)解包
  9. 大数据小结(1-4)
  10. 根据身份证号或营业执照编号取省市区信息