Skip to content

Get Google, Yandex, Baidu search engine results via API or CLI for free 🎉

License

Notifications You must be signed in to change notification settings

karust/openserp

Repository files navigation

OpenSERP (Search Engine Results Page)

OpenSERP

Go Report Card Go Reference release

API access for search engines results if available isn't free.

Using OpenSERP, you can get search results from Google, Yandex, Baidu via API or CLI!

See Docker and CLI usage examples below (search, images).

Docker usage 🐳

  • Run API server:
# Use prebuilt image
docker run -p 127.0.0.1:7000:7000 -it karust/openserp serve -a 0.0.0.0 -p 7000

# Or build one and run using docker-compose.yaml
docker-compose up --build

Request parameters

Param Description
text Text to search
lang Search pages in selected language (EN, DE, RU...)
date Date in YYYYMMDD..YYYYMMDD format (e.g. 20181010..20231010)
file File extension to search (e.g. PDF, DOC)
site Search within a specific website
limit Limit the number of results
answers Include google answers as negative rank indexes (e.g. true, false)

Search

Example request

Get 20 Google results for hello world, only in English:

GET http:/127.0.0.1:7000/google/search?lang=EN&limit=20&text=hello world

You can replace google to yandex or baidu in query to change search engine. |

Example response

[
    {
        "rank": 1,
        "url": "https://en.wikipedia.org/wiki/%22Hello,_World!%22_program",
        "title": "\"Hello, World!\" program",
        "description": "A \"Hello, World!\" program is generally a computer program that ignores any input, and outputs or displays a message similar to \"Hello, World!\".",
        "ad": false
    },
]

Images [WIP]

Example request

Get 100 Google results for golden puppy:

GET http://127.0.0.1:7000/google/image?text=golden puppy&limit=100

CLI ⌨️

  • Use -h flag to see commands.
  • You can use serve command to serve API:
openserp serve 
  • Or print results in CLI using search command:
openserp search google "how to get banned from google fast" # Change `google` to `yandex` or `baidu`

As a result you should get JSON output containting search results:

[
 {
  "rank": 1,
  "url": "https://www.cyberoptik.net/blog/6-sure-fire-ways-to-get-banned-from-google/",
  "title": "11 Sure-Fire Ways to Get Banned From Google | CyberOptik",
  "description": "How To Get Banned From Google · 1. Cloaking: The Art of Deception · 2. Plagiarism: Because Originality is Overrated · 3. Keyword Stuffing: More is Always Better · 4 ...",
  "ad": false
 },
]

License

This project is licensed under the MIT License - see the LICENSE file for details

Bugs + Questions 👾

If you have some issues/bugs/questions, feel free to open an issue.