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)
|