爬虫--智联爬取--拼接链接的演示

本文介绍了一种使用Python爬取智联招聘网站数据的方法,包括如何设置请求头、使用代理IP、解析JSON数据以及将数据保存为CSV文件。通过实际案例展示了数据抓取的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
import time
import numpy as np
import pandas as pd


# 头文件
headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537',
            'Content-Type': 'application/xhtml+xml; charset=UTF-8',
               }
# 代理IP
proxies = {
    'http': 'http://139.0.28.18:8080',
    #         'https': 'http://1.179.183.86:8080',
           }
# 数据集合
infos = {
    # 城市  下一级
    'city': [],
    # 公司名字 下一级
    'company': [],
    # 职业名称
    'jobName': [],
    # 薪水
    'salary': [],
    # 工作经验  下一级
    'workingExp': [],
    # 公司规模  下一级
    'companySize': [],
    # 教育程度   下一级
    'eduLevel': [],
    # 性质(民营等)  下一级
    'type': [],
    # 公司领域 下一级
    'jobType': [],
    # 是否全职
    'emplType': [],
    # 福利  要循环取值
    'welfare': [],

}
# 基础链接
url = 'https://fe-api.zhaopin.com/c/i/sou?'
# 需求链接
base_url = 'start=300&pageSize=60&cityId=489&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=数据分析师&kt=3'
# 翻页 看pagesize可知 页码总数有60页
for i in range(1, 61):
    print(i)
    # 休眠一段时间
    time.sleep(np.random.rand()*15)
    # 需要的参数
    data = {
        "p": str(i),
        "pageSize": "60",
        "jl": "489",
        "kw": "数据分析师",
        "kt": "3"
    }
    # 真实链接
    real_url = url + base_url
    # 第一次忘记加上data
    response = requests.get(real_url, headers=headers, proxies=proxies, data=data)
    # 数据json化
    html = response.json()
    # 找到信息结点
    results = html['data']['results']
    for result in results:
        infos['city'].append(result['city']['display'])
        infos['company'].append(result['company']['name'])
        infos['companySize'].append(result['company']['size']['name'])
        infos['jobName'].append(result['jobName'])
        infos['eduLevel'].append(result['eduLevel']['name'])
        infos['emplType'].append(result['emplType'])
        # 循环福利
        welfares = result['welfare']
        base_welfare = []
        try:
            for welfare in welfares:
                base_welfare.append(welfare)
        except Exception as e:
            print(e)
            print('这家公司没有福利')
        infos['welfare'].append(base_welfare)
        infos['jobType'].append(result['jobType']['display'])
        infos['workingExp'].append(result['workingExp']['name'])
        infos['type'].append(result['company']['type']['name'])
        infos['salary'].append(result['salary'])
# 转化数据
ddata = pd.DataFrame(infos)
# 保存为CSV文件
ddata.to_csv('zhilian.csv', index=False, encoding='gb18030')



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值