Skip to main content

Selestium

Selestium is a Python module for web scraping and automation using Selenium WebDriver.

Features

  • Provides a high-level interface for interacting with HTML content in web pages.
  • Supports rendering JavaScript-based web pages using headless browsers (Firefox and Chrome).
  • Allows easy navigation, element identification, and data extraction from web pages.

Installation

You can install Selestium using pip:

pip install selestium

Dependencies for Termux

In Termux you need some dependencies to work. Later it will bee automatic.

!!CHROME DOES NOT WORK JUST FIREFOX IN TERMUX!!

First update and then install tur and x11 repos

pkg update -y; pkg install -y tur-repo x11-repo

Then install firefox and geckodriver

pkg install -y firefox geckodriver

And you are ready to go..

Dependencies for Linux

In Linux also you need get Firefox dependencies.

Please note that GNU/Linux distributors may provide packages for your distribution which have different requirements.

Firefox will not run at all without the following libraries or packages: glibc 2.17 or higher GTK+ 3.14 or higher libglib 2.42 or higher libstdc++ 4.8.1 or higher X.Org 1.0 or higher (1.7 or higher is recommended) For optimal functionality, we recommend the following libraries or packages: DBus 1.0 or higher NetworkManager 0.7 or higher PulseAudio

For Debian-based distros:

sudo apt update -y && sudo apt install -y \
    libc6 \
    libgtk-3-0 \
    libglib2.0-0 \
    libstdc++6 \
    xorg

Usage

Here's a basic example of how to use Selestium to render a web page and extract information:

Make a Request Without Rendering:

from Selestium import HTMLRequests

# Initialize a HTMLRequests instance with default settings (Firefox browser)
req = HTMLRequests()

# Make a GET request to a web page without rendering
response = req.get("https://www.example.com")

# Extract information from the response
print(response.content)

Make a Request With Rendering:

from Selestium import HTMLRequests

# Initialize a HTMLRequests instance with Firefox browser
req = HTMLRequests(browser='firefox')

# Get a web page and render it using the browser
response = req.get("https://www.example.com", render=True)

# Extract information from the rendered page
titles = response.find("h1")
for title in titles:
    print(title.text)

Using the Controller Method:

from Selestium import HTMLRequests

# Initialize a HTMLRequests instance with Chrome browser
req = HTMLRequests(browser='chrome')

# Get the browser controller (WebDriver) instance
driver = req.browser_controller()

# Navigate to a web page
driver.get("https://www.example.com")

# Perform additional actions using the browser controller
# For example, click a button or fill out a form
# driver.find_element_by_id("button_id").click()

Contributing

Contributions are welcome! If you encounter any issues or have suggestions for improvement, please open an issue or submit a pull request on GitHub.

License

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

Metadata

Release files for selestium 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for selestium 0.2.8
File Size Uploaded
selestium-0.2.8.tar.gz 17.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for selestium 0.2.8
File Interpreter ABI Platform
selestium-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 35.1 kB

Release files / selestium-0.2.8.tar.gz

Download URL selestium-0.2.8.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ea28335836c4c5136f9aff4de11a190115b32095b486092abc31d9cab1a50a69
BLAKE2b-256 checksum
How to use checksums
4817d8ccd7b03f7d3499150d7b91b68eee7cbd505c767eeda89d748db35529bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release files / selestium-0.2.8-py3-none-any.whl

Download URL selestium-0.2.8-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
777668766396b7e0382e443462e91a944a88f9212bf7cfe68f91bb2ccc351290
BLAKE2b-256 checksum
How to use checksums
c7df765aea94cac5f7dcbdf33c34509bbd1e6bd512dc66176e933de59b85c330
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.2.8 This release

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page