招聘信息太多,哪家职位才是适合你的?Python采集招聘信息
时间:2022-07-25
本文章向大家介绍招聘信息太多,哪家职位才是适合你的?Python采集招聘信息,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
在招聘信息上,会提及工作的职位,不过大多描述是笼统的,还需要我们去了解工作的具体内容和性质。要知道,在不同的公司,同样的职位做的事情也是不一样的,工作方法更是大相径庭。所以,要尽可能详细地了解你所投递的职位的具体工作内容、要求。在了解清楚一切后,才能判断出这个职位是否与你的专业、能力、兴趣等相契合。
拉勾招聘是专业的互联网求职招聘平台。致力于提供真实可靠的互联网招聘求职找工作信息。
今天我们一起使用 python 采集拉钩的 python 招聘信息,分析一下找到高薪工作需要掌握哪些技术。
喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。
开发环境:
1. 解释器:Python 3.6.5 | Anaconda, Inc.
2. 编辑器:pycharm 社区版
然后信心满满的 ennn 翻车了
不怕,再来!!!
步骤
导入模块:
import requests
import pprint
正常的情况下,确定爬取的url路径,headers参数就行了,但是有反爬
加上防盗链,Origin,Host参数,还是不行,所以可能就是Cookie的问题了。
还要构建 ip 池
代码如下
def get_cookie():
# 获取服务器返回的 cookie
url = 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput='
response = requests.get(url, headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
})
# 我想要的是 cookie
return response.cookies
url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'
data = {
'first': True,
'pn': 1,
'kd': 'python',
'sid': ""
}
# ip 池 cookie 池
# 请求获取 cookie
headers = {
'Host': 'www.lagou.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
'Origin': 'https://www.lagou.com',
'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
}
# 找 cookie 生成
# 正常情况下
response = requests.post(url, data=data, headers=headers, cookies=get_cookie())
data = response.json()
我们的需求是获取招聘的信息
'city': 城市
'companyFullName': 公司名
'companySize': 公司规模
'education': 学历
'positionName': 职位名称
'salary': 薪资
'workYear': 工作时间
results = data['content']['positionResult']['result']
for r in results:
d = {
'city': r['city'],
'companyFullName': r['companyFullName'],
'companySize': r['companySize'],
'education': r['education'],
'positionName': r['positionName'],
'salary': r['salary'],
'workYear': r['workYear']
}
把爬取的信息写入CSV文件
pprint.pprint(d)
with open('拉钩职位信息.csv', mode='a', encoding='utf-8') as f:
values = d.values()
f.write(",".join(values))
f.write('n')
写完代码,运行后结果如下图
- 《Redis设计与实现》读书笔记(十八) ——Redis客户端属性设计与原理
- 使用Python Pandas处理亿级数据
- PHP函数
- Spray中的Authentication和JMeter测试
- 《Redis设计与实现》读书笔记(二十一) ——Redis服务器定时函数serverCron详解
- Spark SQL访问Postgresql
- sysfs_create_group创建sysfs接口
- apache服务器配置
- Android i2c-tools移植
- 高通GPIO驱动(DTS方式)
- Dos烧录脚本
- 使用ServiceStack构建Web服务
- 《Redis设计与实现》读书笔记(二十三) ——Redis服务器初始化
- 警惕:Oracle中删除的分区不会进入回收站(Recyclebin)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CSS文件夹
- Canvas基础教程(章节3)
- 口算训练 HDU - 6287
- Codeforces Round #674 (Div. 3) A ~ F 详细讲解
- C# 生成chart图表的三种方式
- C# Task.Run调用外部参数
- Git全方位指南,即用即查就可
- Python入门教程笔记(二)控制语句
- Python入门教程笔记(一)简介、变量及基本数据类型
- C#知识点讲解之C#delegate、event、Action、EventHandler的使用和区别
- typescript高级用法之infer的理解与使用
- 基于业务场景下的图片/文件上传方案总结
- LeetCode96|二叉搜索树中的搜索
- LeetCode95|字符串中的第一个唯一字符
- LeetCode94|Pow(x,n)