aboutsummaryrefslogtreecommitdiffstats
path: root/export_tells.py
blob: 29405b665c94540cc823522bc1e38b2f1580c4c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import undetected_chromedriver as uc
from selenium_stealth import stealth
import random
import pickle
import json
import time

USERNAME = "boymoderology"
PASSWORD = '******************************************'

def gen_driver():
    try:
        user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.140 Safari/537.36"
        chrome_options = uc.ChromeOptions()
        # chrome_options.add_argument('--headless=new')
        chrome_options.add_argument("--start-maximized")
        chrome_options.add_argument("user-agent={}".format(user_agent))
        driver = uc.Chrome(options=chrome_options)
        stealth(driver,
                languages=["en-US", "en"],
                vendor="Google Inc.",
                platform="Win32",
                webgl_vendor="Intel Inc.",
                renderer="Intel Iris OpenGL Engine",
                fix_hairline=True
        )
        return driver
    except Exception as e:
        print("Error in Driver: ",e)

def type_in_input(input_elem, word):
    for letter in word:
        input_elem.send_keys(letter)
        time.sleep(random.randint(50, 100) / 1000)

if __name__ == "__main__":
    driver = gen_driver()
    username_password = [USERNAME, PASSWORD]
    qnas = []

    driver.get("https://tellonym.me/%s" % USERNAME)
    time.sleep(2.02)
    driver.find_element(By.CLASS_NAME, "icon-login").click()
    time.sleep(2.02)
    for i, input_elem in enumerate(driver.find_elements(By.CLASS_NAME, "input-underline"), 0):
        type_in_input(input_elem, username_password[i])
        time.sleep(1.01)
    driver.find_elements(By.CLASS_NAME, "input-underline")[-1].send_keys(Keys.RETURN)

    time.sleep(5.05)
    driver.find_element(By.XPATH, "/html/body/div[1]/div/div").click()
    with open("cookies.json", "w") as f:
        json.dump(driver.get_cookies(), f)

    while True:
        try:
            for e in driver.find_elements(By.CLASS_NAME, "rmq-3ca56ea3"):
                try:
                    qna = [s.text for s in e.find_elements(By.TAG_NAME, "span")]
                except StaleElementReferenceException:
                    print("Skipped stale element...")
                    continue
                
                when = e.find_element(By.CSS_SELECTOR, "div[style='color: rgb(175, 175, 179); font-size: 12px; overflow-wrap: break-word; white-space: pre-wrap; word-break: break-word;']").text
                
                if qna[0] not in [q[0] for q in qnas]:
                    qnas.append(qna + [when])
                    print(len(qnas), qna, when)
            

            time.sleep(0.05)

            html = driver.find_element(By.TAG_NAME, 'html')
            html.send_keys(Keys.ARROW_DOWN)
            time.sleep(0.0001)
            html.send_keys(Keys.ARROW_DOWN)
        except KeyboardInterrupt:
            break

    driver.quit()

    with open("tells.json", "w") as f:
        json.dump(qnas, f, indent = 4)