Python采集猎聘网站招聘数据内容,看看现在职位风向
2024-01-08 17:44:10
嗨喽,大家好呀~这里是爱看美女的茜茜呐
环境使用:
-
Python 3.10
-
Pycharm
模块使用:
第三方模块,需安装:
-
requests -> pip install requests
-
pandas -> pip install pandas
-
pyecharts -> pip install pyecharts
内置模块,无需安装:
-
csv
-
execjs
如何安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~
python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可
爬虫实现流程:
一. 数据来源分析
1. 明确需求
采集 https://www.liepin.com/ 上面的招聘数据
2. 抓包分析
请求网址: https://api-c.liepin.com/api/com.liepin.searchfront4c.pc-search-job
请求方式: post
二. 代码实现步骤
1. 发送请求
2. 获取数据
3. 解析数据
4. 保存数据
post请求需要向服务器提交表单数据
请求参数: 隐性
get向服务器获取的数据
请求参数: 显性 (一般存在网址链接中)
批量采集数据:
分析请求参数不一样的地方
currentPage: 页码 从0开始计数 每页+1
-> for循环遍历构建一下
ckId: 不规律
1. 直接搜参数内容 看是否有某地方返回这个内容
第二页ckId 可能在第一页响应数据中返回
2. 分析参数是如何生成的
找JS生成代码
通过js代码生成出来了...
代码展示
导入模块
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 导入数据请求模块
import requests
# 导入格式化输出模块
from pprint import pprint
# 导入csv模块
import csv
“”“创建文件对象”“”
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'职位',
'城市',
'区域',
'薪资',
'年薪',
'经验',
'学历',
'标签',
'公司',
'公司领域',
'公司规模',
])
csv_writer.writeheader()
“”"
- 发送请求 -> requests 数据请求模块
- 模拟浏览器对于url地址发送请求
只要找对数据所在位置(url), 其余可以复制
“”"
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 模拟浏览器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
}
# 请求网址
url = 'https://api-c.liepin.com/api/com.liepin.searchfront4c.pc-search-job'
for page in range(10):
# 请求参数
data = {"data": {
"mainSearchPcConditionForm": {"city": "410", "dq": "410", "pubTime": "", "currentPage": page, "pageSize": 40,
"key": "python", "suggestTag": "", "workYearCode": "0", "compId": "", "compName": "",
"compTag": "", "industry": "", "salary": "", "jobKind": "", "compScale": "",
"compKind": "", "compStage": "", "eduLevel": "", "otherCity": ""},
"passThroughForm": {"sfrom": "search_job_pc", "ckId": "lonni5d1ekjw3ojvsrz592uzvjd32fn8", "scene": "page",
"skId": "mybrnd8iuhb53a1pter1k9g5s6jg4fz9", "fkId": "mybrnd8iuhb53a1pter1k9g5s6jg4fz9"}}}
# 发送请求
response = requests.post(url=url, json=data, headers=headers)
“”"
- 获取数据
- 获取服务器返回响应数据
“”"
- 获取服务器返回响应数据
json_data = response.json()
“”"
- 解析数据, 提取我们需要的数据内容
字典取值: 键值对取值
“”"
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 获取招聘信息所在列表
jobCardList = json_data['data']['data']['jobCardList']
# for循环遍历, 提取列表元素
for index in jobCardList:
"""简单处理数据
split(): 字符串分割
'武汉-江夏区' -> ['武汉', '江夏区']
'海口' -> ['海口']
"""
city_info = index['job']['dq'].split('-')
# 判断列表有几个元素
if len(city_info) == 2: # 说明包含了 区域位置
city = city_info[0]
area = city_info[1]
else:
city = city_info[0]
area = '未知'
salary_info = index['job']['salary'].split('·')
if len(salary_info) == 2:
money = salary_info[0]
year_money = salary_info[1]
else:
money = salary_info[0]
year_money = '12薪'
# 获取招聘数据, 保存字典
dit = {
'职位': index['job']['title'],
'城市': city,
'区域': area,
'薪资': money,
'年薪': year_money,
'经验': index['job']['requireWorkYears'],
'学历': index['job']['requireEduLevel'],
'标签': ','.join(index['job']['labels']),
'公司': index['comp']['compName'],
'公司领域': index['comp']['compIndustry'],
'公司规模': index['comp']['compScale'],
}
csv_writer.writerow(dit)
print(dit)
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。
文章来源:https://blog.csdn.net/m0_72282564/article/details/135458382
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!