sun_empqkl 2024-06-13 15:31 采纳率: 0%
浏览 67
已结题

#求带 python,使用pycharm爬取智联招聘数据资源并保存为Excel文件,同时以图表形式呈现

是实训课上需要的task,一共有三个,分别是:
1.金融科技 图表方式 python
完成招聘网站金融岗位数据爬虫和数据分析
2.python
完成股票数据爬虫,形成可视化数据分析结果
3.python
完成二手车网站,形成可视化模型

我选择了第一个,但是后来运行时就是一直不得行,有没有人可以带带我们,急需

这个是运行之后显示的问题

img

下面是代码的全部内容:

img

  • 写回答

22条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-13 15:31
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    从你提供的信息来看,主要的问题在于代码的缩进错误以及一些逻辑上的小调整。下面是一个修正后的代码示例,用于爬取智联招聘网站的金融岗位数据,并将其保存为CSV文件,然后转换成Excel文件。此外,我还将展示如何使用matplotlib库将数据以图表的形式展示出来。

    步骤 1: 修正代码缩进和导入必要的库

    首先,确保你的代码缩进正确。Python非常依赖于正确的缩进来组织代码块。以下是修正后的代码示例:

    # 导入自动化模块
    from DrissionPage import ChromiumPage
    
    # 导入csv模块
    import csv
    
    # 创建文件对象
    with open('data.csv', mode='w', encoding='utf-8', newline='') as f:
        # f 文件对象 fieldnames 字段名(表头用字典里面的键)
        csv_writer = csv.DictWriter(f, fieldnames=['职位', '公司', '薪资', '学历', '经验', '城市', '区域', '街道', '公司性质', '公司领域', '公司规模', '岗位职责'])
        
        # 写入表头
        csv_writer.writeheader()
    
    # 打开浏览器
    driver = ChromiumPage()
    
    # 监听数据包
    driver.listen.start('fe_api.zhaopin.com/c/i/search/positions')
    
    # 访问网站 进入第二页页面(直接)
    driver.get('https://www.zhaopin.com/')
    
    # 网页滑到最下端
    driver.scroll.to_bottom()
    
    # 点击上一页
    driver.ele('css:.soupager_btn_before').click()
    
    # 等待数据包监听
    resp = driver.listen.wait()
    
    # 直接获取数据包响应内容
    json_data = resp.response.body
    
    # 提取职位所在列表
    lis = json_data['data']['list']
    
    # for循环遍历,提取列表里面职位元素
    for li in lis:
        dict_ = {
            '职位': li['name'],
            '公司': li['companyName'],
            '薪资': li['salary'],
            '学历': li['education'],
            '经验': li['workingExp'],
            '城市': li['workingCity'],
            '区域': li['cityDistrict'],
            '街道': li['streetName'],
            '公司性质': li['property'],
            '公司领域': li['industryName'],
            '公司规模': li['companySize'],
            '岗位职责': li['jobSummary'],
        }
        
        # 写入数据
        csv_writer.writerow(dict_)
    

    步骤 2: 将CSV文件转换为Excel文件

    使用pandas库可以很容易地实现这一点:

    import pandas as pd
    
    df = pd.read_csv('data.csv')
    df.to_excel('data.xlsx', index=False)
    

    步骤 3: 数据可视化

    使用matplotlib库绘制图表,例如薪资分布:

    import matplotlib.pyplot as plt
    
    # 加载数据
    df = pd.read_excel('data.xlsx')
    
    # 绘制薪资直方图
    plt.figure(figsize=(10, 6))
    plt.hist(df['薪资'], bins=20, color='blue', alpha=0.7)
    plt.title('薪资分布')
    plt.xlabel('薪资')
    plt.ylabel('频数')
    plt.show()
    

    确保在运行上述代码之前,你已经安装了所有必需的库。可以使用pip命令进行安装:

    pip install drissionpage pandas matplotlib openpyxl
    

    这应该能解决你的问题并提供一个完整的解决方案来爬取、存储和可视化智联招聘网站的数据。如果在执行过程中遇到任何问题,检查网络请求是否成功返回数据,以及字段名称是否与实际API返回的字段匹配。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 创建了问题 6月13日