关键词搜索

源码搜索 ×
×

python在线采集聘用数据,这不得学会找份新工作~

发布2022-07-15浏览405次

详情内容

前言

大家早好、午好、晚好吖~

环境使用:

  • 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(终端) 输入安装命令

如不会添加可以添加Q裙;832157862找管理员小姐姐领取哦~(源码、解答也可找哦)

基本流程思路: <通用>

一. 数据来源分析

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

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

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

二. 代码实现步骤

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

代码

因审核机制原因,我把网址里的一些东西删掉了,小可耐们可以自己添加一下哈,很容易的

还有两个字,我用拼音代替了,你们可以改回文字哦 ~

如果有不太会改或者有点点小懒惰的小可耐也可以私信我,我发你呐~ ?

也可直接添加Q裙;832157862找管理员小姐姐领取哦~(教程、解答也可找哦)

# 导入数据请求模块  ---> 第三方模块 需要 pip install requests  导入模块没有使用 灰色
import requests
# 导入正则模块  ---> 内置模块 不需要安装
import re
# 导入json  ---> 内置模块 不需要安装
import json
# 导入格式化输出模块   ---> 内置模块 不需要安装
import pprint
# 导入csv模块
import csv
# 导入时间模块
import time
# 导入随机模块
import random
源码、解答、教程加Q裙:832157862
# 创建文件
f = open('python zhaopin 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'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模块找到所有我们想要数据内容 ---> 告诉它去哪里找, 找什么样数据
    源码、解答、教程加Q裙:832157862
    正则匹配提取出来数据, 返回列表 ---> 
    """
    # 提取招聘数据 re.findall()
    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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94

尾语

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

请添加图片描述

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载