让我们用python来采集招聘数据看看找工作都要会什么吧~
前言
嗨喽~大家好呀,这里是魔王呐
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网站空间、营销软件、网站建设、潢川网站维护、网站推广。
现在,很多人不是在找工作的途中就是在找工作的路上(我的废话文学????)
所以我今天来采集一下招聘网站,让我们来看看找工作主要要学会什么?
环境使用:
- Python 3.8
- Pycharm ---> 汉化插件 translation
模块使用:
- requests >>> pip install requests
- re
- json
- csv
如果安装python第三方模块:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
如何配置pycharm里面的python解释器?
- 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
- 点击齿轮, 选择add
- 添加python安装路径
pycharm如何安装插件?
- 选择file(文件) >>> setting(设置) >>> Plugins(插件)
- 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
- 选择相应的插件点击 install(安装) 即可
- 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
基本流程思路: <通用>
解答、教程可加Q:免费获取哦~
一. 数据来源分析
- 确定需求, 明确采集数据内容是什么?
- 通过开发者工具进行抓包分析, 分析数据来源, 请求那个url地址可以获取相关数据内容
I. F12或者鼠标右键点击检查 选择network 刷新网页
II. 通过关键字 搜索找相应数据包
二. 代码实现步骤
- 发送请求, 对于分析得到url地址发送请求 <模拟浏览器对于url发送请求>
- 获取数据, 获取response响应数据 ---> 服务器返回响应数据
- 解析数据, 提取我们想要数据内容 ---> 招聘基本信息
- 保存数据, 保存表格里面
- 多页采集, 多页数据采集
代码
# 导入数据请求模块 ---> 第三方模块 需要 pip install requests 导入模块没有使用 灰色 import requests # 导入正则模块---> 内置模块 不需要安装 import re # 导入json---> 内置模块 不需要安装 import json # 导入格式化输出模块---> 内置模块 不需要安装 import pprint # 导入csv模块 import csv # 导入时间模块 import time # 导入随机模块 import random 源码、解答、教程可加Q裙: # 创建文件 f= open('python招聘10页.csv', mode='a', encoding='utf-8', newline='') csv_writer= csv.DictWriter(f, fieldnames=[ '职位', '公司名', '薪资', '城市', '经验', '学历', '公司类型', '公司规模', '公司领域', '福利待遇', '发布日期', '公司详情页', '职位详情页', ]) # 写入表头 csv_writer.writeheader() """ 1. 发送请求, 对于分析得到url地址发送请求 <模拟浏览器对于url发送请求> 模拟浏览器---> headers 在开发者工具里面headers下面的 requests headers里面 请求头, 字典数据类型, 要构建完整键值对200]> 说明对于url地址发送请求成功了, 但是不一定得到你想要的数据 被反爬, 状态码可能还是200, 但是返回数据不是你想要的内容 """ for page in range(1, 11): print(f'----------------正在采集第{page}页数据内容----------------') time.sleep(random.randint(1, 2)) # 确定url地址--> 可以直接复制 url= f'https://search.51job.com/list/0%252C0%252C0%252C0%252C0,000000,0000,00,9,99,python,2,{page}.html' # 模拟浏览器 headers 请求头 伪装 headers= { # User-Agent 用户代理, 表示浏览器基本身份标识 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } # 发送请求 使用什么请求方式, 取决于开发者工具里的内容 response= requests.get(url=url, headers=headers) # 200]> 响应对象 200 状态码 请求成功 print(response) # 获取数据, 获取服务器返回响应数据---> 获取文本数据 print(response.text) """ 解析数据 ---> 提取我们想要数据内容 解析方法比较多: re css xpath json解析.... 如何选择方法 根据返回数据类型以及我想要数据内容情况 re.findall() 调用re模块里面findall方法 通过re模块找到所有我们想要数据内容---> 告诉它去哪里找, 找什么样数据 正则匹配提取出来数据, 返回列表---> """ # 提取招聘数据 re.findall() 源码、解答、教程可加Q裙: html_data= re.findall('window.__SEARCH_RESULT__ = (.*?)', response.text)[0] # 把字符串数据转成json字典数据 json_data= json.loads(html_data) # print 打印字典数据, 一行展示 pprint.pprint 打印字典数据类型, 格式化展开的效果 print(json_data) pprint.pprint(json_data) # 字典取值---> 根据键值对取值 根据冒号左边的内容[键], 提取冒号右边的内容[值] # for循环遍历 把列表里面数据一个一个提取出来 for index in json_data['engine_jds']: # 提取数据, 用字典 保存内容 学历是敲门砖, 技术才是铁饭碗.... 毕业出来3500 dit= { '职位': index['job_name'], '公司名': index['company_name'], '薪资': index['providesalary_text'], '城市': index['workarea_text'], '经验': index['attribute_text'][1], '学历': index['attribute_text'][-1], '公司类型': index['companytype_text'], '公司规模': index['companysize_text'], '公司领域': index['companyind_text'], '福利待遇': index['jobwelf'], '发布日期': index['issuedate'], '公司详情页': index['company_href'], '职位详情页': index['job_href'], } # 写入数据 csv_writer.writerow(dit) print(dit)
文章标题:让我们用python来采集招聘数据看看找工作都要会什么吧~
URL链接:http://azwzsj.com/article/dsoggsj.html