gogo2/agent-pyter/dexbot.py
2024-05-12 11:24:31 +03:00

79 lines
2.4 KiB
Python

# source /path/to/virtualenv/bin/activate # On Unix or MacOS
# source /config/miniconda3/envs/py/bin/activate
# pip install requests beautifulsoup4 schedule selenium
# wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# sudo dpkg -i google-chrome-stable_current_amd64.deb
# apt install libnss3 libxss1
import requests
from bs4 import BeautifulSoup
# import schedule
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time
# Initialize WebDriver
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
def check_pairs_sel():
try:
# Open the page
driver.get("https://www.dextools.io/app/en/bnb/pool-explorer")
time.sleep(10) # Wait for JavaScript to execute
# Extract the page source
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
# Assuming the pairs are listed in <div> tags with a class that includes the word 'pair'
pairs = soup.find_all('div', class_=lambda x: x and 'pair' in x)
print("Pairs found:", [pair.text for pair in pairs])
finally:
driver.quit()
def check_new_pairs():
# log the running time
print("Checking for new pairs...")
url = "https://www.dextools.io/"
url = "https://www.dextools.io/app/en/bnb/pool-explorer"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# make html dump to ./dextools-last.html
with open('./dextools-last.html', 'w') as f:
f.write(soup.prettify())
# Assuming the pairs are listed in <div> tags with a class that includes the word 'pair'
pairs = soup.find_all('div', class_=lambda x: x and 'pair' in x)
current_pairs = {pair.text for pair in pairs}
if not hasattr(check_new_pairs, "last_pairs"):
check_new_pairs.last_pairs = current_pairs
new_pairs = current_pairs - check_new_pairs.last_pairs
if new_pairs:
print("New Pairs Found:", new_pairs)
# Here you can add the code to trigger any event (e.g., send an email, a notification, etc.)
# Update the last checked pairs
check_new_pairs.last_pairs = current_pairs
def main():
#schedule.every(10).seconds.do(check_new_pairs)
while True:
# schedule.run_pending()
check_pairs_sel()
time.sleep(10000)
if __name__ == "__main__":
main()