Micro Web Crawler in PHP & Manticore
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.5 KiB

1 year ago
# Yo! Micro Web Crawler in PHP & Manticore
1 year ago
1 year ago
Next generation of [YGGo!](https://github.com/YGGverse/YGGo) project with goal to reduce server requirements and make deployment process simpler
1 year ago
- Index model changed to distributed cluster model, and now oriented to aggregate search results from network instances trough API
- Refactored data exchange model where drop all internal keys dependencies
1 year ago
- Snaps now using tar.gz compression to reduce storage requirements and still supporting remote mirrors, FTP including
1 year ago
- Minimalism everywhere
1 year ago
## Implementation
Engine written in PHP 8 and uses [Manticore](https://github.com/manticoresoftware) on backend.
1 year ago
Default build adapted for [Yggdrasil](https://github.com/yggdrasil-network) but could be used to make internet search portal.
1 year ago
1 year ago
## Components
1 year ago
* CLI tools for index operations
* JS-less frontend to make search web portal
* API tools to make search index distributed
1 year ago
## Features
1 year ago
* MIME-based crawler with flexible filter settings
* Page snap history with local and remote mirrors support
1 year ago
### Install
1 year ago
1. Install `composer`, `php` and `manticore`
1 year ago
2. Grab latest `Yo` version `git clone https://github.com/YGGverse/Yo.git`
1 year ago
3. Run `composer update` inside the project directory
4. Copy and customize config file `cp example/config.json config.json`
1 year ago
5. Make sure `storage` folder writable
6. Run indexes init script `php src/cli/index/init.php`
1 year ago
7. Add new URL `php src/cli/document/add.php URL`
8. Run crawler `php src/cli/document/crawl.php`
9. Get search results `php src/cli/document/search.php '*'`
#### Web UI
1. `cd src/webui`
2. `php -S 127.0.0.1:8080`
3. now open `127.0.0.1:8080` in your browser!
1 year ago
## Documentation
1 year ago
1 year ago
### CLI
1 year ago
1 year ago
#### Index
1 year ago
1 year ago
##### Init
1 year ago
Create initial index
```
php src/cli/index/init.php [reset]
```
* `reset` - optional, reset existing index
1 year ago
#### Document
1 year ago
1 year ago
##### Add
1 year ago
```
php src/cli/document/add.php URL
```
* `URL` - add new URL to the crawl queue
1 year ago
##### Crawl
1 year ago
```
php src/cli/document/crawl.php
```
1 year ago
##### Search
1 year ago
```
php src/cli/document/search.php '@title "*"' [limit]
```
* `query` - required
* `limit` - optional search results limit
##### Migration
###### YGGo
Import index from YGGo database
```
php src/cli/yggo/import.php 'host' 'port' 'user' 'password' 'database' [unique=off] [start=0] [limit=100]
```
Source DB fields required:
* `host`
* `port`
* `user`
* `password`
* `database`
* `unique` - optional, check for unique URL (takes more time)
* `start` - optional, offset to start queue
* `limit` - optional, limit queue