Published on

SkillSelect 数据爬虫

Authors
  • avatar
    Name
    Jack Qin
    Twitter

澳大利亚移民 SkillSelect Selenium 脚本

该脚本旨在自动从澳大利亚内政部提供的 SkillSelect 网站收集意向书(EOI)数据。SkillSelect 平台允许技术工人和商业人士记录其详细信息,以便通过意向书考虑申请技术签证。它帮助管理澳大利亚的技术移民计划,是潜在移民和澳大利亚雇主的重要资源。

前置要求

要运行此脚本,请确保你的系统已安装以下软件:

  1. Python 3.x
  2. Selenium 库
  3. Google Chrome 浏览器
  4. ChromeDriver

安装

  1. 安装 Python:从官方网站这里下载并安装 Python。

  2. 安装 Selenium:使用 pip 安装 Selenium 库。

    pip install selenium
    
  3. 下载 ChromeDriver:确保 ChromeDriver 的版本与你安装的 Google Chrome 版本匹配。从这里下载 ChromeDriver,并将其放置在系统 PATH 包含的目录中。

SkillSelect 网站结构

SkillSelect 网站的结构为用户提供了各种交互元素来输入他们的详细信息和偏好。主要元素包括:

  1. 主页面:包含导航元素和详细数据报告的链接。
  2. Iframes:嵌入的 iframe 包含交互内容,用户可以在其中选择特定条件、查看报告和导出数据。
  3. 交互按钮和字段:用于导航的按钮、搜索字段和导出选项等元素用于与数据交互。

脚本概述

该脚本执行以下步骤来自动化数据收集:

  1. 打开 SkillSelect EOI 数据页面:脚本导航到 SkillSelect EOI 数据页面。
  2. 浏览网站:它点击各种按钮并选择适当的 iframe 与网站元素交互。
  3. 选择数据点:对于澳大利亚的每个州,脚本选择与该州相关的特定数据点。
  4. 搜索特定州数据:它在搜索字段中输入州名并检索相关数据。
  5. 导出数据:最后,脚本将数据导出为所需格式以供进一步分析。

脚本如何与 Iframe 交互

  1. 切换到 Iframe:脚本使用 switch_to_iframe 函数将上下文切换到网页上的特定 iframe。这允许它与 iframe 内的元素交互。
  2. 与 Iframe 内的元素交互:进入 iframe 后,脚本点击按钮、输入搜索条件并选择数据点。
  3. 切换回默认内容:与 iframe 交互后,脚本使用 switch_to_default_content 函数切换回主页面上下文。

关键函数

  • wait_and_click:等待元素可点击,然后点击它。
  • wait_and_send_keys:等待输入字段可见,然后向其发送指定的键。
  • switch_to_iframe:将上下文切换到指定的 iframe 以与其中的元素交互。
  • switch_to_default_content:从 iframe 切换回默认内容上下文。

配置

  • STATE:需要收集数据的澳大利亚州列表。
  • XPaths:网页上各种元素的 XPath,用于自动化交互。

使用方法

  1. 确保所有依赖项已安装且 ChromeDriver 正确放置。
  2. 将脚本复制到 Python 文件中,例如 eoi_data_collection.py
  3. 运行脚本:
    python main.py
    

点击过程

程序使用以下过程在网页上执行点击:

  1. 识别 Web 元素:程序识别需要执行点击的网页元素。这通常使用 Selenium 提供的 XPath 表达式、CSS 选择器或其他定位策略完成。
  2. 等待元素可点击:在执行点击操作之前,程序等待目标元素变为可点击状态。这确保元素已完全加载并准备好接收用户交互。wait_and_click 函数利用 Selenium 的 WebDriverWait 等待元素可点击。
  3. 执行点击操作:一旦元素被认为可点击,程序执行点击操作。这是通过对已识别的 WebElement 对象使用 click() 方法完成的。
  4. 处理异常:程序包含异常处理来处理点击过程中可能发生的任何错误。这确保了健壮性并防止程序意外崩溃。如果发生异常,程序会记录错误并继续下一次迭代或操作。 重复过程:程序根据需要重复上述步骤,根据自动化任务的逻辑点击不同的元素或在循环中执行点击。