Use python para obtener información laboral popular y ver qué habilidades está lejos de un salario alto


Hablando de fin de año, los que tienen trabajo deberían considerar cambiar de trabajo el próximo año, y los que no tienen trabajo deberían considerar buscar trabajo el próximo año.Entonces, ¿has pensado qué hacer?

inserte la descripción de la imagen aquí
¿No sabes cómo entender? ¡Está bien, vamos, usemos Python para verlo y analizarlo con un solo clic!

1. Prepárate para los juegos previos

1. Software utilizado

python 3.8
pycharm 2021专业版 激活码

2. Módulos incorporados utilizados

pprint >>> # 格式化输入模块
csv >>> # 保存csv文件
re >>> # re 正则表达式
time >>> # 时间模块

3. Módulos de terceros a instalar

requests >>> # 数据请求模块 

win + R Ingrese cmd e ingrese el comando de instalación pip install nombre del módulo. Si se vuelve popular, puede deberse a que la conexión de red se agotó. Simplemente cambie la fuente del espejo doméstico.

Si realmente no puedes, mira mi artículo principal
inserte la descripción de la imagen aquí

En segundo lugar, el proceso de la idea.

Un rastreador simula un navegador, envía una solicitud a un servidor y obtiene los datos que devuelve en respuesta.

Análisis de fuente de datos

Primero determine el objetivo, analice el contenido de los datos y dónde obtenerlos.

Los datos se envían a través de qué dirección URL y qué método de solicitud, llevando esos encabezados de solicitud y luego obteniendo los datos (análisis de captura de paquetes a través de herramientas de desarrollador)

Cuando analizamos datos, analizamos los datos devueltos por el servidor, no el panel de elementos. Los elementos son el panel de elementos y el contenido después de que se representa el código de front-end.
inserte la descripción de la imagen aquí

Pasos de implementación del código

  1. Envíe una solicitud, para la dirección url (paquete) que acabamos de analizar para enviar una solicitud, publicar solicitud, parámetros de solicitud, encabezado de solicitud de encabezado;
  2. Obtenga datos, obtenga el contenido de datos del cuerpo de respuesta y los datos devueltos por el servidor;
  3. Analizar los datos, extraer el contenido que queremos y seleccionar el método de análisis más adecuado para extraer los datos de acuerdo con los datos devueltos;
  4. Guardar datos, guardar datos locales de base de datos/texto/tabla;
  5. Rastreo de varias páginas;
  6. No hay software ni tutorial, puede obtenerlo en el lado izquierdo de la página web, los libros electrónicos, videos, etc. están listos.

3. Parte del código

Hermanos, la parte más favorita está aquí, en el código.
inserte la descripción de la imagen aquí

import requests  # 数据请求模块 
import pprint  # 格式化输入模块
import csv   # 保存csv文件
import time # 时间模块


# 打开文件 等会进行保存 mode 是保存方式 a 追加写入
f = open('拉勾.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '标题',
    '公司名字',
    '城市',
    '薪资',
    '经验',
    '学历',
    '详情页',
])
csv_writer.writeheader()  # 写入表头
for page in range(1, 11):
    # 1. 发送请求 字符串格式化输出 {}占位符
    print(f'===================正在爬取第{
      
      page}页的数据内容===================')
    time.sleep(2) # 延时2秒钟
    url = 'https://www.lagou.com/jobs/v2/positionAjax.json'  # 确定请求的url地址
    # headers 请求头  爬虫就是模拟浏览器 对于服务器发送请求, 得到他返回响应数据
    # headers 作用 伪装python代码的  把python代码伪装成浏览器 去发送请求  简单反爬一种手段
    # user-agent 用户代理 浏览器的身份标识
    headers = {
    
    
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
    }
    # data 请求参数, post请求 需要传递一个from data表单数据
    # pycharm使用的小技巧一: 快速批量替换 选中 ctrl + R 输入正则表达式匹配规则
    # pycharm使用的小技巧二: 翻译插件 可以去安装
    data = {
    
    
        'first': 'true',
        'needAddtionalResult': 'false',
        'city': '全国',
        'px': 'new',
        'pn': page,
        'fromSearch': 'true',
        'kd': 'python',
    }
    # 通过requests这个模块里面post请求方法 对于url地址发送请求, 并且给传递一个data请求参数, headers 请求头, 最后response变量接收
    response = requests.post(url=url, data=data, headers=headers)
    # <Response [200]> 放回的结果 response 对象 200 状态码 表示请求成功
    # 2. 获取数据 response.json() 获取json字典数据 response.text 获取文本数据(字符串数据) response.content 二进制数据
    # print(response.text)
    # pprint.pprint(response.json())
    # 3. 解析数据 字典数据类型, 解析数据 提取内容 可以根据键值对取值  根据冒号左边的内容, 提取冒号右边的内容
    # 根据冒号左边的内容, 提取冒号右边的内容
    result = response.json()['content']['positionResult']['result']
    # pprint.pprint(result)
    for index in result:  # for循环 遍历 提取列表里面每一个元素
        title = index['positionName']  # 标题
        company_name = index['companyFullName']  # 公司名字
        city = index['city']  # 城市
        money = index['salary']  # 薪资
        workYear = index['workYear']  # 经验
        edu = index['education']  # 学历
        href = f'https://www.lagou.com/wn/jobs/{
      
      index["positionId"]}.html'
        # json.loads() 字符串数据转字典
        dit = {
    
    
            '标题': title,
            '公司名字': company_name,
            '城市': city,
            '薪资': money,
            '经验': workYear,
            '学历': edu,
            '详情页': href,
        }
        csv_writer.writerow(dit)
        print(dit)

Hermanos, si creen que está bien, recuerden tres ha ~ consecutivos

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/fei347795790/article/details/121982461
Recomendado
Clasificación