PHPackages                             sukohi/search-bot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. sukohi/search-bot

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

sukohi/search-bot
=================

Laravel package to crawl websites.

1.0.5(9y ago)214MITPHP

Since Feb 15Pushed 9y ago2 watchersCompare

[ Source](https://github.com/SUKOHI/SearchBot)[ Packagist](https://packagist.org/packages/sukohi/search-bot)[ RSS](/packages/sukohi-search-bot/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (3)Versions (8)Used By (0)

SearchBot
=========

[](#searchbot)

Laravel package to crawl websites.(Laravel 5+)

Requirements
============

[](#requirements)

- [FriendsOfPHP/Goutte](https://github.com/FriendsOfPHP/Goutte)
- [SUKOHI/laravel-absolute-url](https://github.com/SUKOHI/laravel-absolute-url)

Installation
============

[](#installation)

Execute the next command.

```
composer require sukohi/search-bot:1.*

```

Set the service providers in app.php

```
'providers' => [
    ...Others...,
    Sukohi\SearchBot\SearchBotServiceProvider::class,
    Sukohi\LaravelAbsoluteUrl\LaravelAbsoluteUrlServiceProvider::class,
]

```

Also alias

```
'aliases' => [
    ...Others...,
    'LaravelAbsoluteUrl' => Sukohi\LaravelAbsoluteUrl\Facades\LaravelAbsoluteUrl::class,
    'SearchBot' => Sukohi\SearchBot\Facades\SearchBot::class,
]

```

Then execute the next commands.

```
php artisan vendor:publish
php artisan migrate

```

Now you have `config/search_bot.php` which you can set domains restrictions.

Config
======

[](#config)

```
return [

    'main' => '*',
    'yahoo' => ['yahoo.com', 'www.yahoo.com'],
    'reddit' => ['www.reddit.com']

];

```

- If you don't need to set restriction, set `*`.

Usage
=====

[](#usage)

```
$starting_url = 'http://yahoo.com';
$options = [
    'type' => 'main', // $type is optional.(Default: main),
    'url_deletion' => true  // Default: true
];
$result = \SearchBot::request($starting_url, $options);

if($result->exists()) {

    // Symfony\Component\BrowserKit\Response
    // See http://api.symfony.com/2.3/Symfony/Component/BrowserKit/Response.html
    $response = $result->response();

    // Symfony\Component\DomCrawler/Crawler
    // See http://api.symfony.com/2.3/Symfony/Component/DomCrawler/Crawler.html
    $crawler = $result->crawler();

    $result->links(function($url, $text){

        // All links including URL & text will come here.

    });

    $result->queues(function($crawler_queue, $url, $text){

        // All links that do not exist in DB will come here.
        // $crawler_queue has already type and url.
        $crawler_queue->save();

    });

} else {

    $e = $result->exception();
    echo $e->getMessage();
    $type = $result->type();
    $url = $result->url();

}

```

Options
=======

[](#options)

- type

    Type is string that you can decide freely.
    Default is `main`.
- url\_deletion

    If true here, URL accessed will be removed from DB.
    Default is `true`.

License
=======

[](#license)

This package is licensed under the MIT License.
Copyright 2017 Sukohi Kuhoh

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

7

Last Release

3422d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2980d59b309d45df3f2e6e51b1d336614da063240b8f76f873f287cd745ec5db?d=identicon)[Sukohi](/maintainers/Sukohi)

---

Top Contributors

[![SUKOHI](https://avatars.githubusercontent.com/u/5362394?v=4)](https://github.com/SUKOHI "SUKOHI (9 commits)")

### Embed Badge

![Health badge](/badges/sukohi-search-bot/health.svg)

```
[![Health](https://phpackages.com/badges/sukohi-search-bot/health.svg)](https://phpackages.com/packages/sukohi-search-bot)
```

###  Alternatives

[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17818.7k](/packages/markwalet-nova-modal-response)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

591.7k1](/packages/crumbls-layup)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
