class_docstr: Interacts with AWS Glue Crawler.
  
  Provide thin wrapper around :external+boto3:py:class:`boto3.client("glue") <Glue.Client>`.
  
  Additional arguments (such as ``aws_conn_id``) may be specified and
  are passed down to the underlying AwsBaseHook.
  
  .. seealso::
      - :class:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`
      - `AWS Glue crawlers and classifiers         <https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#crawling-intro>`__
class_docstr_tok: ["Interacts","with","AWS","Glue","Crawler",".","Provide","thin","wrapper","around",":","external+boto3",":","py",":","class",":","`","boto3.client","(","``","glue","''",")","<","Glue.Client",">","`",".","Additional","arguments","(","such","as","``","aws_conn_id","``",")","may","be","specified","and","are","passed","down","to","the","underlying","AwsBaseHook",".","..","seealso",":",":","-",":","class",":","`","airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook","`","-","`","AWS","Glue","crawlers","and","classifiers","<","https",":","\/\/docs.aws.amazon.com\/glue\/latest\/dg\/components-overview.html","#","crawling-intro",">","`","__"]
docstr: Check if the crawler already exists.
  
  :param crawler_name: unique crawler name per AWS account
  :return: Returns True if the crawler already exists and False if not.
docstr_tok: ["Check","if","the","crawler","already","exists",".",":","param","crawler_name",":","unique","crawler","name","per","AWS","account",":","return",":","Returns","True","if","the","crawler","already","exists","and","False","if","not","."]
code: def has_crawler(self, crawler_name) -> bool:
      """
      Check if the crawler already exists.
  
      :param crawler_name: unique crawler name per AWS account
      :return: Returns True if the crawler already exists and False if not.
      """
      self.log.info(
          "Checking if crawler already exists: %s", crawler_name
      )
  
      try:
          self.get_crawler(crawler_name)
          return True
      except self.glue_client.exceptions.EntityNotFoundException:
          return False
  
file_path: airflow/airflow/providers/amazon/aws/hooks/glue_crawler.py
imports: from __future__ import annotations
  from functools import cached_property
  from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
  from airflow.providers.amazon.aws.hooks.sts import StsHook
label_desc: Use image node_id 3 for calling the GlueCrawlerHook obj's underlying member method code with example usage: obj.has_crawler(crawler_name) and returns: True, False