百木园-与人分享,
就是让自己快乐。

让我们用python来采集招聘数据看看找工作都要会什么吧~

前言

嗨喽~大家好呀,这里是魔王呐

现在,很多人不是在找工作的途中就是在找工作的路上(我的废话文学😂)

所以我今天来采集一下招聘网站,让我们来看看找工作主要要学会什么?

环境使用:

  • Python 3.8
  • Pycharm ---> 汉化插件 translation

模块使用:

  • requests >>> pip install requests
  • re
  • json
  • csv

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令


如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

基本流程思路: <通用>

解答、教程可加Q:832157862免费获取哦~

一. 数据来源分析

  1. 确定需求, 明确采集数据内容是什么?
  2. 通过开发者工具进行抓包分析, 分析数据来源, 请求那个url地址可以获取相关数据内容

I. F12或者鼠标右键点击检查 选择network 刷新网页

II. 通过关键字 搜索找相应数据包

二. 代码实现步骤

  1. 发送请求, 对于分析得到url地址发送请求 <模拟浏览器对于url发送请求>
  2. 获取数据, 获取response响应数据 ---> 服务器返回响应数据
  3. 解析数据, 提取我们想要数据内容 ---> 招聘基本信息
  4. 保存数据, 保存表格里面
  5. 多页采集, 多页数据采集

代码

# 导入数据请求模块  ---> 第三方模块 需要 pip install requests  导入模块没有使用 灰色
import requests
# 导入正则模块  ---> 内置模块 不需要安装
import re
# 导入json  ---> 内置模块 不需要安装
import json
# 导入格式化输出模块   ---> 内置模块 不需要安装
import pprint
# 导入csv模块
import csv
# 导入时间模块
import time
# 导入随机模块
import random
源码、解答、教程可加Q裙:832157862
# 创建文件
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里面
        请求头, 字典数据类型, 要构建完整键值对
    <Response [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/010000%252C020000%252C030200%252C040000%252C090200,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)
    # <Response [200]>  响应对象  200 状态码 请求成功
    print(response)
    # 获取数据, 获取服务器返回响应数据---> 获取文本数据 print(response.text)
    \"\"\"
    解析数据  ---> 提取我们想要数据内容
        解析方法比较多: re css xpath json解析.... 如何选择方法 根据返回数据类型以及我想要数据内容情况
        re.findall() 调用re模块里面findall方法
        通过re模块找到所有我们想要数据内容 ---> 告诉它去哪里找, 找什么样数据
    
    正则匹配提取出来数据, 返回列表 ---> 
    \"\"\"
    # 提取招聘数据 re.findall()
    源码、解答、教程可加Q裙:832157862
    html_data = re.findall(\'window.__SEARCH_RESULT__ = (.*?)</script>\', 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来采集招聘数据看看找工作都要会什么吧~


来源:https://www.cnblogs.com/Qqun261823976/p/16481543.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » 让我们用python来采集招聘数据看看找工作都要会什么吧~

相关推荐

  • 暂无文章