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()
“”"
“”"
'''
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)
感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 ,有学习到一点知识~
躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。
最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀