Selenops icon indicating copy to clipboard operation
Selenops copied to clipboard

A Swift Web Crawler πŸ•·


Selenops logo
Swift Package Manager MacOS + iOS + iPadOS + tvOS + watchOS Twitter: @zntfdr

Welcome to Selenops, a Swift Web Crawler.

Given a webpage url and a word to search, Selenops will look for said word in that page, and all pages linked in there, recursively.


import Selenops

// Initialize crawler.
let crawler = Crawler(
  startURL: URL(string: "")!,
  maximumPagesToVisit: 10,
  wordToSearch: "Swift" // Specify the word to search here.

// Set delegate.
crawler.delegate = ... // Needs to conform to CrawlerDelegate

// Start crawling!

The crawler delegate will get information such as visited webpages, and in which webpages the specified word has been found.


Selenops is distributed via the Swift Package Manager:

  • to use it into an app, follow this tutorial and use this repository URL:

  • to use it in a package, add it as a dependency in your Package.swift:

 let package = Package(
     dependencies: [
         .package(url: "", from: "2.0.0")
     targets: [
            dependencies: ["Selenops"])

...and then use import Selenops whenever necessary.

Command line tool

Swift Web Crawler in action

Selenops also comes with a command line tool that showcases its functionality.

To install it, clone the project and run make:

$ git clone
$ cd Selenops
$ make


Selenops was built by Federico Zanetello as an example of a Swift script.

Contributions and Support

All users are welcome and encouraged to become active participants in the project continued development β€” by fixing any bug that they encounter, or by improving the documentation wherever it’s found to be lacking.

If you'd like to make a change, please open a Pull Request, even if it just contains a draft of the changes you’re planning, or a test that reproduces an issue.

Thank you and please enjoy using Selenops!