• Stars
    star
    303
  • Rank 137,655 (Top 3 %)
  • Language
    Go
  • License
    Other
  • Created over 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ•ท๏ธ An easy-to-use spider written in Golang. (previous named GOPA.)

What a Spider!

GOPA, A Spider Written in Go.

Travis Go Report Card Join the chat at https://gitter.im/infinitbyte/gopa

Goal

  • Light weight, low footprint, memory requirement should < 100MB
  • Easy to deploy, no runtime or dependency required
  • Easy to use, no programming or scripts ability needed, out of box features

Screenshoot

What a Spider! GOPA Spider!


How to use

Requirements

  • Elasticsearch v5.3+

Setup

First of all, get it, two opinions: download the pre-built package or compile it yourself.

Download Pre Built Package

Go to Release page, download the right package for your platform.

Note: Darwin is for Mac

Compile The Package Manually

Requirements

  • Golang 1.9+

Supported platform

For example:

#apt  install golang-go
#brew install golang
mkdir ~/go/src/github.com/infinitbyte/ -p
cd ~/go/src/github.com/infinitbyte/
git clone https://github.com/infinitbyte/gopa.git
cd gopa
make

After a few minutes, you should have:

gopa, the main program, a single binary.
gopa.yml, main configuration for gopa.

Required Config

Note: Elasticsearch version should >= v5.3

  • Enable elastic module in gopa.yml, update the elasticsearch's setting:
elasticsearch:
- name: default
  enabled: true
  endpoint: http://localhost:9200
  index_prefix: gopa-
  basic_auth:
    username: elastic
    password: changeme

Start

Besides Elasticsearch, Gopa doesn't require any other dependencies, just simply run ./gopa to start the program.

Gopa can be run as daemon(Note: Only available on Linux and Mac):

Example
โžœ  gopa git:(master) โœ— ./bin/gopa --daemon
  ________ ________ __________  _____
 /  _____/ \_____  \\______   \/  _  \
/   \  ___  /   |   \|     ___/  /_\  \
\    \_\  \/    |    \    |  /    |    \
 \______  /\_______  /____|  \____|__  /
        \/         \/                \/
[gopa] 0.10.0_SNAPSHOT
///last commit: 99616a2, Fri Oct 20 14:04:54 2017 +0200, medcl, update version to 0.10.0 ///

[10-21 16:01:09] [INF] [instance.go:23] workspace: data/gopa/nodes/0 [gopa] started.

Also run ./gopa -h to get the full list of command line options.

Example
โžœ  gopa git:(master) โœ— ./bin/gopa -h
  ________ ________ __________  _____
 /  _____/ \_____  \\______   \/  _  \
/   \  ___  /   |   \|     ___/  /_\  \
\    \_\  \/    |    \    |  /    |    \
 \______  /\_______  /____|  \____|__  /
        \/         \/                \/
[gopa] 0.10.0_SNAPSHOT
///last commit: 99616a2, Fri Oct 20 14:04:54 2017 +0200, medcl, update version to 0.10.0 ///

Usage of ./bin/gopa: -config string the location of config file (default "gopa.yml") -cpuprofile string write cpu profile to this file -daemon run in background as daemon -debug run in debug mode, gopa will quit with panic error -log string the log level,options:trace,debug,info,warn,error (default "info") -log_path string the log path (default "log") -memprofile string write memory profile to this file -pidfile string pidfile path (only for daemon) -pprof string enable and setup pprof/expvar service, eg: localhost:6060 , the endpoint will be: http://localhost:6060/debug/pprof/ and http://localhost:6060/debug/vars

Stop

It's safety to press ctrl+c stop the current running Gopa, Gopa will handle the rest,saving the checkpoint, you may restore the job later, the world is still in your hand.

If you are running Gopa as daemon, you may stop it like this:

 kill -QUIT `pgrep gopa`

Configuration

UI

  • Search Console http://127.0.0.1:9000/
  • Admin Console http://127.0.0.1:9000/admin/

API

Architecture

What a Spider! GOPA Spider!

Who uses it?

You use GOPA and you want to be listed there? Contact me.

License

Released under the Apache License, Version 2.0 .

More Repositories

1

analysis-ik

๐ŸšŒ The IK Analysis plugin integrates Lucene IK analyzer into Elasticsearch and OpenSearch, support customized dictionary.
Java
16,397
star
2

analysis-pinyin

๐Ÿ›ต This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin.
Java
2,926
star
3

analysis-stconvert

๐Ÿšฒ STConvert is analyzer that convert chinese characters between traditional and simplified.ไธญๆ–‡็ฎ€็น้ซ”ไบ’็›ธ่ฝฌๆข.
Java
352
star
4

gateway

๐Ÿš€ A High-performance gateway designed for search scenarios. Good friend of Elasticsearch/Opensearch/Easysearch.
26
star
5

framework

Go
9
star
6

examples

Examples for INFINI products.
Java
7
star
7

console

๐Ÿ– Multi-cluster, cross-version unified Elasticsearch/Opensearch/Easysearch governance platform.
7
star
8

pizza

๐Ÿ• The Next-Gen Real-Time Search & AI-Native Innovation Engine.
6
star
9

testing

๐Ÿงช INFINI Integrated Testing.
Smarty
4
star
10

helm-charts

โŽˆ Helm charts for the products of INFINI Labs.
Smarty
3
star
11

get.infini.sh

Script to install INFINI products.
Shell
3
star
12

pizza-website

๐Ÿ• Home page of PIzza Engine.
CSS
2
star
13

pizza-engine

Pizza engine, code name FIRE (Fast Indexing and Retrieval Engine), is a fully functional real-time search engine library developed in Rust. Designed for efficiency and versatility, FIRE delivers high-performance indexing and retrieval while supporting modern, constrained environments.
1
star
14

loadgen-dsl

๐Ÿงจ A easy to use and human-friendly DSL for conducting test assessments with INFINI Loadgen.
Rust
1
star