在拉勾搜索职位时,通过谷歌F12抓取请求信息

发现请求是一个post请求,参数为:

返回的是json数据

有了上面的基础,我们就可以构造请求了

然后对获取到的响应反序列化,这样就获取到了json格式的招聘信息,就可以进行各种操作了,比如取其中的某个信息

最后循环写入excle

具体实现如下:

import requests
import json
import xlwt items = [] # 招聘信息
pn = 1
# 抓取数据
def get_content(pn):
# 全国
url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'
data = {
'first':'true',
'pn':pn,
'kd':'python'
}
# url发送一个post请求,把data数据发送过去
html = requests.post(url,data).text # 获取文本
# print(type(html)) # <class 'str'>
html = json.loads(html)
print(html) for i in range(15):
item = []
# 字典嵌套,招聘职位、公司、薪资、地区、福利、提供条件、工作类型
item.append(html['content']['positionResult']['result'][i]['positionName'])
item.append(html['content']['positionResult']['result'][i]['companyFullName'])
item.append(html['content']['positionResult']['result'][i]['salary'])
item.append(html['content']['positionResult']['result'][i]['city'])
item.append(html['content']['positionResult']['result'][i]['positionAdvantage'])
item.append(html['content']['positionResult']['result'][i]['companyLabelList'])
item.append(html['content']['positionResult']['result'][i]['firstType'])
items.append(item)
return items # 创建excel表格
def excel_write(items):
newTable = 'test1.xls'
wb = xlwt.Workbook(encoding='utf-8') # 创建excel文件
ws = wb.add_sheet('test1') # 创建sheet
headData = ['招聘职位','公司','薪资','地区','福利','提供条件','工作类型']
for hd in range(7):
ws.write(0,hd,headData[hd],xlwt.easyxf('font:bold on'))
# 写数据
index = 1 # 表示行
for item in items:
for i in range(7):
# print(type(item[i]))
if i == 5:
ws.write(index, i, ','.join(item[i]))
else:
ws.write(index, i, item[i])
index += 1
wb.save(newTable) if __name__ == '__main__':
items = get_content(pn)
print(items)
excel_write(items)

  

py3+requests+json+xlwt,爬取拉勾招聘信息的更多相关文章

  1. 【原创】py3+requests+json+xlwt,爬取拉勾招聘信息

    在拉勾搜索职位时,通过谷歌F12抓取请求信息 发现请求是一个post请求,参数为: 返回的是json数据 有了上面的基础,我们就可以构造请求了 然后对获取到的响应反序列化,这样就获取到了json格式的 ...

  2. 直接请求json文件爬取天眼查企业信息(未解决验证码问题)——python3实现

    几个月前...省略一堆剧情...直接请求json文件爬取企业信息未成功,在知乎提问后,得到解决,有大佬说带上全部headers和cookie是可以的,我就又去试了下,果然可以(之前自己试的时候不行,没 ...

  3. 21天打造分布式爬虫-Selenium爬取拉钩职位信息(六)

    6.1.爬取第一页的职位信息 第一页职位信息 from selenium import webdriver from lxml import etree import re import time c ...

  4. ruby 爬虫爬取拉钩网职位信息,产生词云报告

    思路:1.获取拉勾网搜索到职位的页数 2.调用接口获取职位id 3.根据职位id访问页面,匹配出关键字 url访问采用unirest,由于拉钩反爬虫,短时间内频繁访问会被限制访问,所以没有采用多线程, ...

  5. 爬虫实例之使用requests和Beautifusoup爬取糗百热门用户信息

    这次主要用requests库和Beautifusoup库来实现对糗百的热门帖子的用户信息的收集,由于糗百的反爬虫不是很严格,也不需要先登录才能获取数据,所以较简单. 思路,先请求首页的热门帖子获得用户 ...

  6. selelinum+PhantomJS 爬取拉钩网职位

    使用selenium+PhantomJS爬取拉钩网职位信息,保存在csv文件至本地磁盘 拉钩网的职位页面,点击下一页,职位信息加载,但是浏览器的url的不变,说明数据不是发送get请求得到的. 我们不 ...

  7. 使用request爬取拉钩网信息

    通过cookies信息爬取 分析header和cookies 通过subtext粘贴处理header和cookies信息 处理后,方便粘贴到代码中 爬取拉钩信息代码 import requests c ...

  8. Python3 Scrapy + Selenium + 阿布云爬取拉钩网学习笔记

    1 需求分析 想要一个能爬取拉钩网职位详情页的爬虫,来获取详情页内的公司名称.职位名称.薪资待遇.学历要求.岗位需求等信息.该爬虫能够通过配置搜索职位关键字和搜索城市来爬取不同城市的不同职位详情信息, ...

  9. 使用nodejs爬取拉勾苏州和上海的.NET职位信息

    最近开始找工作,本人苏州,面了几家都没有结果很是伤心.在拉勾上按照城市苏州关键字.NET来搜索一共才80来个职位,再用薪水一过滤,基本上没几个能投了.再加上最近苏州的房价蹭蹭的长,房贷压力也是非常大, ...

随机推荐

  1. 【jquery】【ztree】节点添加自定义按钮、编辑和删除事件改成自己定义事件

    setting添加 edit: { drag: { isCopy: false, isMove: true }, enable: true,//设置是否处于编辑状态 showRemoveBtn: sh ...

  2. JS系列:三元运算符与循环

     三元运算符 语法: 条件?成立做的事情:不成立做的事情:<=>相当于简单的if/else判断(简化写法) var num = 12; if(num>10){ num ++; }el ...

  3. 2019-7-17 正则表达式和re模块

    一.re模块与正则表达式之间的关系 正则表达式不是python独有的,它是一门独立的技术 所有的编程语言都可以使用正则 但是如果你想在python中使用,你就必须依赖于re模块 正则的官方定义:正则表 ...

  4. [开源]Gin + GORM + Casbin+vue-element-admin 实现权限管理系统(golang)

    简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...

  5. 在Go中简单实现HTTP服务中间件

    通常一个简单http服务框架,就是注册一堆路由,然后根据路由调用不同的逻辑去处理. 但实际上可能有一些统一的处理对几乎所有的路由都涉及到,比如日志,比如权限等等. 那么这个时候搞一个中间做预处理,是一 ...

  6. VB.NET 读写XML

    Public Class CSysXML Dim mXmlDoc As New System.Xml.XmlDocument Public XmlFile As String Public Sub N ...

  7. OracleVM桥接网卡无法获取本地连接网卡

    问题现象 VM虚拟机采用桥接网卡时,界面名称为"未指定",无法获取本地连接对应网卡信息: 处理方式: 进入本地连接,选择本地连接右键进入属性设置窗口; 选择安装,单击服务选项后点击 ...

  8. Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度

    原文:Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 嫌项目编译太慢?不一定是 Visual Studio 的问题,有可能 ...

  9. 微信小程序文档

    提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说明: 示例代码: wx.showToast({ title: '成功', icon: 'success', dur ...

  10. docker save load export import的区别

    export export命令用于持久化容器(不是镜像).所以,我们就需要通过以下方法得到容器ID: sudo docker ps -a 接着执行导出: sudo docker export < ...