Wiem , że trochę trwało to zanim odpowiedziałem, ale kilka spraw wypadło i przy okazji święta, wszystko co dotąd napisałem zazwyczaj było na potrzeby mojej pracy i nie było dopieszczonym kodem tylko takim , żeby po prostu działał :/ . Głównie były to programy typu puść pinga jak coś odpowie to wyślij maila do mnie na telefon i otwórz przeglądarkę i wpisz coś. Ostatnio napisałem prosty programik ( przy okazji wielka prośba o sprawdzenie kodu ) , program na początku miał tylko składać życzenia urodzinowe na Facebooku, ale z biegiem czasu dopisałem jeszcze funkcję w której sprawdza ile razy wybrana osoba sprawdza w zdefiniowanym przez użytkownika przedziale czasowym obecność na messangerze. Za każdym razem jak osoba przestaje być aktywna na messangerze zapisywany jest do listy czas zdarzenia a po upływie zdefiniowanego wcześniej czasu jest wyświetlana lista czasów kiedy osoba była aktywna.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time, re , datetime
time_to_stalk = ""
while not time_to_stalk:
time_to_stalk = input("Write a end time of stalking friend in format like 13:46 or 07:23 -- ")
if bool(re.search(r'\d\d:\d\d', time_to_stalk)) == True:
print("Correct Format")
else:
print("Wrong format")
time_to_stalk = ""
login = input("Write your login to facebook -- ")
password = input("Write your password to facebook -- ")
chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(chrome_options=chrome_options)
def logging(login,password):
# Firstly application is log to the Facebook.
browser.get("https://www.facebook.com/")
browser.find_element_by_id("email").send_keys(login)
browser.find_element_by_id("pass").send_keys(password)
browser.find_element_by_id("loginbutton").click()
browser.maximize_window()
def birthsday_wishes():
# Nextly it checks if there is any birthsday reminder on main page of Facebook
while 'class="fbRemindersTitle"' in browser.page_source:
browser.find_element_by_class_name("fbRemindersTitle").click()
browser.find_element_by_name("message_text").send_keys("Happy Birtshday :)")
browser.find_element_by_name("message_text").send_keys(Keys.RETURN)
browser.refresh()
print("wished")
else:
print("There is no birthday")
def stalker(time_to_stalk):
browser.find_element_by_xpath('//*[@id="navItem_217974574879787"]/a/span').click()
time.sleep(10)
browser.find_element_by_class_name("_58al").click()
time.sleep(10)
Friends_List = []
friend_number = 0
Friends = browser.find_elements_by_class_name("_364g")
for friend in Friends:
Friends_List.append(friend.text)
friend_number += 1
print(str(friend_number) + ". " + friend.text)
chosen_number = int(input("Choose a friend's number to stalk him :) : "))
chosen_friend = Friends_List[chosen_number - 1]
print(chosen_friend)
browser.find_element_by_class_name('_58al').send_keys(chosen_friend)
time.sleep(10)
browser.find_element_by_xpath('//*[@id="js_e"]/div/div/div[1]/span[1]/div/div[2]/ul/li[1]').click()
time.sleep(10)
activity = browser.find_element_by_class_name("_2v6o")
print(activity.text)
Report = []
while datetime.datetime.now().strftime("%H:%M") != time_to_stalk:
if "Aktywny(a) 1 min temu" in browser.page_source:
times = datetime.datetime.now().strftime("%H:%M:%S")
print(times)
Report.append(times)
time.sleep(120)
elif "Aktywny(a)" not in browser.page_source:
print(chosen_friend, " does not use messanger .")
browser.close()
exit()
else:
print(chosen_friend, " Is not on messanger now.")
time.sleep(30)
if len(Report) == 0:
print(chosen_friend," has not logged to Facebook")
else:
print(chosen_friend, "has logged to Facebook at:")
for hit in Report:
print(hit)
def main():
logging(login,password)
stalker(time_to_stalk)
birthsday_wishes()
print(("End of application"))
browser.quit()
main()
Planuje jeszcze dopisać kod który wysyła maila z listą czasów aktywności na messangerze przed zakonczeniem programu.