You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用for循环创建函数,批量爬取多招聘网站职位数量?

当然可以!这正是函数和循环的核心用途——干掉重复代码,实现批量处理

先看重构后的完整代码:

import os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import re

# 配置环境路径
os.environ['PATH'] += "/Users/monicayadav/PycharmProjects/pythonProject4/selenium/venv/bin"

def get_job_count(driver, url, target_xpath):
    """从指定URL爬取职位数量"""
    # 打开目标页面
    driver.get(url)
    # 等待目标元素加载完成
    WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.XPATH, target_xpath)))
    # 正则匹配数字格式(支持带逗号的千分位)
    num_pattern = re.compile(r'^([0-9,]+).*$')
    # 等待元素文本符合正则匹配规则,返回提取到的数字
    job_count = WebDriverWait(driver, 10).until(
        lambda _: (e := driver.find_element(By.XPATH, target_xpath)) 
        and (m := num_pattern.match(e.text)) 
        and m.group(1)
    )
    return job_count

if __name__ == "__main__":
    # 初始化浏览器驱动
    driver = webdriver.Firefox()
    driver.implicitly_wait(10)

    # 定义需要爬取的网站列表:每个条目包含网站名称、URL、目标元素XPATH
    job_sites = [
        {
            "name": "Benteler Automotive",
            "url": "https://career.benteler.jobs/go/All-Jobs/3197201/",
            "xpath": "(//b)[11]"
        },
        {
            "name": "Best Buy",
            "url": "https://jobs.bestbuy.com/bby?id=all_jobs&spa=1&s=req_id_num",
            "xpath": "//p[contains(@class, 'font-wt-500 ng-binding')]"
        }
    ]

    # 批量处理每个网站
    for site in job_sites:
        count = get_job_count(driver, site["url"], site["xpath"])
        print(f"{site['name']} 职位数量:{count}")

    # 关闭浏览器
    driver.quit()

关键优化点说明:

  • 封装函数get_job_count:把两段代码里重复的「打开页面→等待元素→提取数字」逻辑抽成函数,接收浏览器实例、目标网址、职位数量元素的XPATH三个参数,返回提取到的职位数量。新增网站时不用重复写相同逻辑,直接调用函数即可。
  • 用列表存储网站配置:把每个网站的名称、URL、XPATH整理成字典放到列表里,方便管理和扩展——以后要加新网站,直接在列表里加一条新字典就行。
  • for循环批量遍历:遍历网站列表,逐个调用函数爬取数据,自动完成批量处理。

这样改造后,代码更简洁易维护,也完全贴合你学习函数和for循环的需求。

内容的提问来源于stack exchange,提问作者Monica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 15:20:38