Skip to content

ArjunSharda/Searchor

Repository files navigation

Searchor

GitHub repo size

Json-Generator

 forks

PyPI Discord

Description

Searchor is an all-in-one PyPi Python Library that simplifies web scraping, obtaining information on an topic, and generating search query URLs. Searchor is an a efficient tool for Python developers, with many web development needs in one, with support of over 100+ Engines and custom engines allowed, making it easy for developers to use for their web programming needs in Python without relying on many third-party dependencies. Furthermore, Searchor has a wide range of support, including command line interface and pip.

Installation

Python 3.7+ is required

# MacOS / Linux (via Terminal)
python3 -m pip install -U searchor

# Windows (via CMD Prompt)
py -3 -m pip install -U searchor

Quick Start

>>> from searchor import Engine
>>> Engine.Google.search("Hello, World!"))
'https://www.google.com/search?q=Hello%2C%20World%21'

Custom Engine

>>> from searchor import Engine
>>> Engine.new("Colgate", "https://www.colgate.com/en-us/search/all?term=")
>>> Engine.Colgate.search("Hi world!")
'https://www.colgate.com/en-us/search/all?term=Hi%20world!"

Searchor CLI Quick Start

$ searchor Google "Hello World!" --copy


Web Scrape

>>> from searchor import Information
>>> Information.scrape("https://google.com")
>>> '{'title': 'Google', 'paragraphs': [<p style="font-size:8pt;color:#70757a">© 2023 - <a href="/intl/en/policies/privacy/">Privacy</a> - <a href="/intl/en/policies/terms/">Terms</a></p>]}'

Get Information

>>> from searchor import Information
>>> Information.getinfo("GitHub")
>>> 'GitHub, Inc. is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.'

Take a look at more examples in the examples folder!

Note:  Engine names follow the UpperCamelCase convention.(eg: ChromeWebStore).

Docker

Building the docker image

$ docker build -t searchor .

Running searchor on the docker container

$ docker run --rm -it searchor sh
/usr/src/searchor/examples # python searchamazon.py
https://www.amazon.com/s?k=Hello%2C%20World%21

v2.5.2 Changes

v2.5.0

  • [ADDED] Added a new Enum class Information.
  • [ADDED] Added getinfo function in the Information Enum to gather information about a given topic, using Wikipedia.
  • [ADDED] Add web_scraper function in the Information Enum, to web scrape a URL that is given.
  • [ADDED] Added bs4 and requests as dependencies.
  • [MODIFIED] The Searchor Package is now officially becoming a library, and is therefore no longer considered a package.

v2.5.2

  • [FIXED] Fixed issue with web scraping, with attribute errors, and CLI issues

Migration

Instead of different functions for each engine, Searchor v2.2.0 uses a single function with an Engine enum. This makes it easier to use and maintain. If you're migrating from v2.0.0, compare the differences between the following snippets:

# Searchor 2.0.0
from searchor import search, Engine
search("Hello, World!", Engine.Google)
# Searchor v2.2.0
from searchor import Engine
Engine.Google.search("Hello, World!")

Want to contribute?

Take a look at the contributing guidelines!


© Arjun Sharda 2022-present
All Rights Reserved