Python采集智联招聘网站数据实现可视化数据

本文介绍了如何使用Python的selenium库模拟浏览器行为,免登陆获取智联招聘网站的数据,并通过pyecharts进行数据可视化。提供了环境配置、关键代码段以及可视化资源链接。

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

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

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

环境使用:

Python
Pycharm

模块使用:

selenium --> pip install selenium==3.141.0
time
csv

驱动下载地址: https://googlechromelabs.github.io/chrome-for-testing/#stable

小思路

今天案例使用: 谷歌浏览器

selenium 模拟人的行为操作浏览器:

自动打开浏览器, 获取网页上面数据内容

多页数据采集: 需要登陆账号才能实现翻页

通过selenium实现免登陆操作:

使用selenium访问网址的时候, 网页状态是登陆的状态

智联招聘如果你想要通过requests获取数据:

需要学习JS逆向 --> 瑞数5

js逆向比较复杂 --> 通过selenium去获取数据 但是效率很低

获取数据代码

“”“导入模块”“”

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 导入自动化测试模块
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 导入csv模块
import csv
# 导入时间模块
import time

“”“创建文件对象”“”

options = Options()
options.add_argument("--user-data-dir=C:\\Users\\shanhe\\AppData\\Local\\Google\\Chrome\\User Data")
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '职位',
    '公司',
    '薪资',
    '年薪',
    '城市',
    '区域',
    '经验',
    '学历',
    '公司性质',
    '公司规模',
    '标签',
])
csv_writer.writeheader()

打开浏览器

driver = webdriver.Chrome(options=options)  # 实例化一个浏览器对象

访问目标网址

driver.get('https://sou.zhaopin.com/?jl=538&kw=python&p=1')

“”“页面下滑操作”“”

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def drop_down():
    """执行页面滚动的操作"""  # javascript
    for x in range(1, 12, 2):  # 1 3 5 7 9  在你不断的下拉过程中, 页面高度也会变的
        time.sleep(1)
        j = x / 9  # 1/9  3/9  5/9  9/9
        # document.documentElement.scrollTop  指定滚动条的位置
        # document.documentElement.scrollHeight 获取浏览器页面的最大高度
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)
 """ 
 定位元素 <元素面板上面>
     driver.find_element_by_css_selector() 通过css选择定位元素
     driver.find_element_by_xpath() 通过xpath定位元素
     driver.find_element_by_id() 通过 ID 定位元素
     driver.find_element_by_class_name() 通过 class类 名定位元素

 - find_elements 表示提取多个
 - find_element 表示提取一个

 网页元素内容还没有加载完成, 就直接获取相关数据, 可能得不到内容     
 """
def get_content():
    # 延时等待 等元素内容加载完成
    driver.implicitly_wait(10)
    drop_down()
    # 获取整页20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值