המלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי
-
@יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
אוקי אתה מסתמא מתכוון לזה:
https://mitmachim.top/assets/uploads/files/1735056799181-b24203df-0ca9-4f79-bee3-71e74b963e07-image.pngלא להעתיק את כל מה שיש שם, אלא שם ללחוץ על יצירת מפתח API, ואז להעתיק את המפתח שנוצר
-
@יעקב-4 יכול להיות, נראה לי ש@sivan22 הזכיר שבאמת זה עוצר מדי פעם, זה לכאורה תלוי במספר הטוקנים שהוא שולח, כנראה בחינמי זה מאד מוגבל.
-
@מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
א"א לתכנת בלי לדעת תכנות.
אני לא יודע מילה וחצי מילה בפייתון, הוא הדריך אותי אפילו מאיפה להוריד פייתון ואיך להתקין...
והיום בעבודה של כמה שעות עם הבינה האנושית שלי, הכנתי תוכנה להקפצה אוטומטית של מודעות ביד2, משהו שאני חולם עליו כבר שנים.יצא מדהים, הקוד בספויילר.
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time import os import json from datetime import datetime from dotenv import load_dotenv from bidi.algorithm import get_display def display_rtl(text): """מציג טקסט בעברית בכיוון הנכון""" return get_display(text) load_dotenv() class ListingUpdater: def __init__(self): print(display_rtl("מאתחל את דפדפן Chrome...")) self.cookies_file = "yad2_cookies.json" self.setup_driver() def setup_driver(self): chrome_options = Options() chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--start-maximized') chrome_options.add_experimental_option("detach", True) try: self.driver = webdriver.Chrome(options=chrome_options) print(display_rtl("דפדפן Chrome הואצל בהצלחה")) except Exception as e: print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}")) raise def save_cookies(self): cookies = self.driver.get_cookies() with open(self.cookies_file, 'w') as f: json.dump(cookies, f) print(display_rtl("נשמרו עוגיות בהצלחה")) def load_cookies(self): try: with open(self.cookies_file, 'r') as f: cookies = json.load(f) # Navigate to the domain first self.driver.get('https://www.yad2.co.il') time.sleep(2) # Add the cookies for cookie in cookies: self.driver.add_cookie(cookie) print(display_rtl("עוגיות נטענו בהצלחה")) return True except FileNotFoundError: print(display_rtl("לא נמצא קובץ עוגיות קיים")) return False except Exception as e: print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}")) return False def check_login_status(self): try: print(display_rtl("בודק סטטוס התחברות...")) # First go to main page self.driver.get('https://www.yad2.co.il') time.sleep(3) # Then try to access my-ads print(display_rtl("מנסה לגשת לאזור האישי...")) self.driver.get('https://www.yad2.co.il/my-ads') time.sleep(10) # תן יותר זמן לטעינה # Check if we're actually on the my-ads page current_url = self.driver.current_url print(display_rtl(f"כתובת נוכחית: {current_url}")) if "my-ads" in current_url: print(display_rtl("מחובר בהצלחה לאזור האישי!")) return True else: print(display_rtl("לא הצלחנו להגיע לאזור האישי")) return False except Exception as e: print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}")) return False def manual_login(self): print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:")) print(display_rtl("1. הכנס את פרטי ההתחברות שלך")) print(display_rtl("2. פתור את אתגר האבטחה אם נדרש")) print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי")) self.driver.get('https://www.yad2.co.il/auth/login') # Wait for successful login WebDriverWait(self.driver, 300).until( lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url ) print(display_rtl("התחברת בהצלחה!")) self.save_cookies() def update_listings(self): try: print(display_rtl("מנווט לדף המודעות שלי...")) self.navigate_to_my_ads() # מחפש את כפתורי ההקפצה print(display_rtl("\nמחפש כפתורי הקפצה...")) bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if not bump_buttons: print(display_rtl("לא נמצאו כפתורי הקפצה")) return False print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה")) # עובר על כל כפתור הקפצה for i in range(len(bump_buttons)): try: # מנווט מחדש לדף המודעות בכל פעם self.navigate_to_my_ads() print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}...")) # מוצא את כפתורי ההקפצה מחדש אחרי הניווט bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if i >= len(bump_buttons): print(display_rtl("לא נמצאו יותר כפתורי הקפצה")) break button = bump_buttons[i] print(f"\nטקסט על כפתור {i + 1}:", button.text.strip()) # בודק אם הכפתור מושבת if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"): print(display_rtl("הכפתור מושבת")) continue # גולל לכפתור self.driver.execute_script("arguments[0].scrollIntoView(true);", button) time.sleep(1) # מנסה ללחוץ באמצעות JavaScript print("מנסה ללחוץ על כפתור ההקפצה...") self.driver.execute_script("arguments[0].click();", button) print("לחיצה על כפתור ההקפצה") # מחכה קצת ואז מרענן את הדף time.sleep(2) print("מרענן את הדף...") self.driver.refresh() # מחכה לטעינת הדף print("ממתין לטעינת הדף...") self.wait_for_page_load() print("הדף נטען") # מחכה קצת זמן אחרי ההקפצה time.sleep(3) except Exception as e: print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return True except Exception as e: print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return False def navigate_to_my_ads(self): """מנווט לדף המודעות שלי ומחכה שהדף יטען""" self.driver.get('https://www.yad2.co.il/my-ads') # מחכה שהדף יטען print(display_rtl("ממתין לטעינת הדף...")) WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) # מחכה שה-splash screen ייעלם print(display_rtl("ממתין שמסך הטעינה ייעלם...")) try: splash_screen = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1")) ) WebDriverWait(self.driver, 20).until( EC.staleness_of(splash_screen) ) print(display_rtl("מסך הטעינה נעלם")) except: print(display_rtl("לא נמצא מסך טעינה")) # מחכה שיופיע התוכן האמיתי print(display_rtl("ממתין לטעינת התוכן...")) time.sleep(3) def wait_for_page_load(self): WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) def close(self): try: self.driver.quit() except: pass def main(): updater = None try: while True: # לולאה אינסופית print("\nמתחיל הרצה חדשה...") updater = ListingUpdater() updater.load_cookies() if updater.check_login_status(): print(display_rtl("התחברות באמצעות עוגיות הצליחה!")) else: print(display_rtl("צריך להתחבר שוב...")) updater.manual_login() print(display_rtl("\nמתחיל את תהליך העדכון...")) updater.update_listings() updater.close() # מחכה 4 שעות ודקה print("\nממתין 4 שעות ודקה עד להרצה הבאה...") time.sleep((4 * 60 * 60) + 60) # 4 שעות + דקה בשניות except KeyboardInterrupt: print("\nהתוכנית הופסקה על ידי המשתמש") finally: if updater: updater.close() if __name__ == "__main__": main()
@EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
א"א לתכנת בלי לדעת תכנות.
אני לא יודע מילה וחצי מילה בפייתון, הוא הדריך אותי אפילו מאיפה להוריד פייתון ואיך להתקין...
והיום בעבודה של כמה שעות עם הבינה האנושית שלי, הכנתי תוכנה להקפצה אוטומטית של מודעות ביד2, משהו שאני חולם עליו כבר שנים.יצא מדהים, הקוד בספויילר.
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time import os import json from datetime import datetime from dotenv import load_dotenv from bidi.algorithm import get_display def display_rtl(text): """מציג טקסט בעברית בכיוון הנכון""" return get_display(text) load_dotenv() class ListingUpdater: def __init__(self): print(display_rtl("מאתחל את דפדפן Chrome...")) self.cookies_file = "yad2_cookies.json" self.setup_driver() def setup_driver(self): chrome_options = Options() chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--start-maximized') chrome_options.add_experimental_option("detach", True) try: self.driver = webdriver.Chrome(options=chrome_options) print(display_rtl("דפדפן Chrome הואצל בהצלחה")) except Exception as e: print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}")) raise def save_cookies(self): cookies = self.driver.get_cookies() with open(self.cookies_file, 'w') as f: json.dump(cookies, f) print(display_rtl("נשמרו עוגיות בהצלחה")) def load_cookies(self): try: with open(self.cookies_file, 'r') as f: cookies = json.load(f) # Navigate to the domain first self.driver.get('https://www.yad2.co.il') time.sleep(2) # Add the cookies for cookie in cookies: self.driver.add_cookie(cookie) print(display_rtl("עוגיות נטענו בהצלחה")) return True except FileNotFoundError: print(display_rtl("לא נמצא קובץ עוגיות קיים")) return False except Exception as e: print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}")) return False def check_login_status(self): try: print(display_rtl("בודק סטטוס התחברות...")) # First go to main page self.driver.get('https://www.yad2.co.il') time.sleep(3) # Then try to access my-ads print(display_rtl("מנסה לגשת לאזור האישי...")) self.driver.get('https://www.yad2.co.il/my-ads') time.sleep(10) # תן יותר זמן לטעינה # Check if we're actually on the my-ads page current_url = self.driver.current_url print(display_rtl(f"כתובת נוכחית: {current_url}")) if "my-ads" in current_url: print(display_rtl("מחובר בהצלחה לאזור האישי!")) return True else: print(display_rtl("לא הצלחנו להגיע לאזור האישי")) return False except Exception as e: print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}")) return False def manual_login(self): print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:")) print(display_rtl("1. הכנס את פרטי ההתחברות שלך")) print(display_rtl("2. פתור את אתגר האבטחה אם נדרש")) print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי")) self.driver.get('https://www.yad2.co.il/auth/login') # Wait for successful login WebDriverWait(self.driver, 300).until( lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url ) print(display_rtl("התחברת בהצלחה!")) self.save_cookies() def update_listings(self): try: print(display_rtl("מנווט לדף המודעות שלי...")) self.navigate_to_my_ads() # מחפש את כפתורי ההקפצה print(display_rtl("\nמחפש כפתורי הקפצה...")) bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if not bump_buttons: print(display_rtl("לא נמצאו כפתורי הקפצה")) return False print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה")) # עובר על כל כפתור הקפצה for i in range(len(bump_buttons)): try: # מנווט מחדש לדף המודעות בכל פעם self.navigate_to_my_ads() print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}...")) # מוצא את כפתורי ההקפצה מחדש אחרי הניווט bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if i >= len(bump_buttons): print(display_rtl("לא נמצאו יותר כפתורי הקפצה")) break button = bump_buttons[i] print(f"\nטקסט על כפתור {i + 1}:", button.text.strip()) # בודק אם הכפתור מושבת if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"): print(display_rtl("הכפתור מושבת")) continue # גולל לכפתור self.driver.execute_script("arguments[0].scrollIntoView(true);", button) time.sleep(1) # מנסה ללחוץ באמצעות JavaScript print("מנסה ללחוץ על כפתור ההקפצה...") self.driver.execute_script("arguments[0].click();", button) print("לחיצה על כפתור ההקפצה") # מחכה קצת ואז מרענן את הדף time.sleep(2) print("מרענן את הדף...") self.driver.refresh() # מחכה לטעינת הדף print("ממתין לטעינת הדף...") self.wait_for_page_load() print("הדף נטען") # מחכה קצת זמן אחרי ההקפצה time.sleep(3) except Exception as e: print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return True except Exception as e: print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return False def navigate_to_my_ads(self): """מנווט לדף המודעות שלי ומחכה שהדף יטען""" self.driver.get('https://www.yad2.co.il/my-ads') # מחכה שהדף יטען print(display_rtl("ממתין לטעינת הדף...")) WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) # מחכה שה-splash screen ייעלם print(display_rtl("ממתין שמסך הטעינה ייעלם...")) try: splash_screen = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1")) ) WebDriverWait(self.driver, 20).until( EC.staleness_of(splash_screen) ) print(display_rtl("מסך הטעינה נעלם")) except: print(display_rtl("לא נמצא מסך טעינה")) # מחכה שיופיע התוכן האמיתי print(display_rtl("ממתין לטעינת התוכן...")) time.sleep(3) def wait_for_page_load(self): WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) def close(self): try: self.driver.quit() except: pass def main(): updater = None try: while True: # לולאה אינסופית print("\nמתחיל הרצה חדשה...") updater = ListingUpdater() updater.load_cookies() if updater.check_login_status(): print(display_rtl("התחברות באמצעות עוגיות הצליחה!")) else: print(display_rtl("צריך להתחבר שוב...")) updater.manual_login() print(display_rtl("\nמתחיל את תהליך העדכון...")) updater.update_listings() updater.close() # מחכה 4 שעות ודקה print("\nממתין 4 שעות ודקה עד להרצה הבאה...") time.sleep((4 * 60 * 60) + 60) # 4 שעות + דקה בשניות except KeyboardInterrupt: print("\nהתוכנית הופסקה על ידי המשתמש") finally: if updater: updater.close() if __name__ == "__main__": main()
יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?
-
@יעקב-4 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@צללית יכול להיות שאחרי שתי שאלות הוא לא עובד כי המשאב מוצה?
לא סביר, כי המגבלה מאוד גבוהה, זה לא אמור להיגמר כל כך מהר
-
@EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@מישהו12 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
א"א לתכנת בלי לדעת תכנות.
אני לא יודע מילה וחצי מילה בפייתון, הוא הדריך אותי אפילו מאיפה להוריד פייתון ואיך להתקין...
והיום בעבודה של כמה שעות עם הבינה האנושית שלי, הכנתי תוכנה להקפצה אוטומטית של מודעות ביד2, משהו שאני חולם עליו כבר שנים.יצא מדהים, הקוד בספויילר.
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time import os import json from datetime import datetime from dotenv import load_dotenv from bidi.algorithm import get_display def display_rtl(text): """מציג טקסט בעברית בכיוון הנכון""" return get_display(text) load_dotenv() class ListingUpdater: def __init__(self): print(display_rtl("מאתחל את דפדפן Chrome...")) self.cookies_file = "yad2_cookies.json" self.setup_driver() def setup_driver(self): chrome_options = Options() chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--start-maximized') chrome_options.add_experimental_option("detach", True) try: self.driver = webdriver.Chrome(options=chrome_options) print(display_rtl("דפדפן Chrome הואצל בהצלחה")) except Exception as e: print(display_rtl(f"שגיאה בהגדרת דפדפן Chrome: {str(e)}")) raise def save_cookies(self): cookies = self.driver.get_cookies() with open(self.cookies_file, 'w') as f: json.dump(cookies, f) print(display_rtl("נשמרו עוגיות בהצלחה")) def load_cookies(self): try: with open(self.cookies_file, 'r') as f: cookies = json.load(f) # Navigate to the domain first self.driver.get('https://www.yad2.co.il') time.sleep(2) # Add the cookies for cookie in cookies: self.driver.add_cookie(cookie) print(display_rtl("עוגיות נטענו בהצלחה")) return True except FileNotFoundError: print(display_rtl("לא נמצא קובץ עוגיות קיים")) return False except Exception as e: print(display_rtl(f"שגיאה בטעינת עוגיות: {str(e)}")) return False def check_login_status(self): try: print(display_rtl("בודק סטטוס התחברות...")) # First go to main page self.driver.get('https://www.yad2.co.il') time.sleep(3) # Then try to access my-ads print(display_rtl("מנסה לגשת לאזור האישי...")) self.driver.get('https://www.yad2.co.il/my-ads') time.sleep(10) # תן יותר זמן לטעינה # Check if we're actually on the my-ads page current_url = self.driver.current_url print(display_rtl(f"כתובת נוכחית: {current_url}")) if "my-ads" in current_url: print(display_rtl("מחובר בהצלחה לאזור האישי!")) return True else: print(display_rtl("לא הצלחנו להגיע לאזור האישי")) return False except Exception as e: print(display_rtl(f"שגיאה בבדיקת סטטוס התחברות: {str(e)}")) return False def manual_login(self): print(display_rtl("\nאנא התחבר באופן ידני ל-Yad2:")) print(display_rtl("1. הכנס את פרטי ההתחברות שלך")) print(display_rtl("2. פתור את אתגר האבטחה אם נדרש")) print(display_rtl("3. לאחר התחברות מוצלחת, התסריט ימשיך באופן אוטומטי")) self.driver.get('https://www.yad2.co.il/auth/login') # Wait for successful login WebDriverWait(self.driver, 300).until( lambda driver: "my-ads" in driver.current_url or "feed/my" in driver.current_url ) print(display_rtl("התחברת בהצלחה!")) self.save_cookies() def update_listings(self): try: print(display_rtl("מנווט לדף המודעות שלי...")) self.navigate_to_my_ads() # מחפש את כפתורי ההקפצה print(display_rtl("\nמחפש כפתורי הקפצה...")) bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if not bump_buttons: print(display_rtl("לא נמצאו כפתורי הקפצה")) return False print(display_rtl(f"נמצאו {len(bump_buttons)} כפתורי הקפצה")) # עובר על כל כפתור הקפצה for i in range(len(bump_buttons)): try: # מנווט מחדש לדף המודעות בכל פעם self.navigate_to_my_ads() print(display_rtl(f"\nמנסה להקפיץ מודעה {i + 1}...")) # מוצא את כפתורי ההקפצה מחדש אחרי הניווט bump_buttons = self.driver.find_elements(By.CSS_SELECTOR, "[class*='bump-button_bumpButton']") if i >= len(bump_buttons): print(display_rtl("לא נמצאו יותר כפתורי הקפצה")) break button = bump_buttons[i] print(f"\nטקסט על כפתור {i + 1}:", button.text.strip()) # בודק אם הכפתור מושבת if button.get_attribute("aria-disabled") == "true" or button.get_attribute("disabled"): print(display_rtl("הכפתור מושבת")) continue # גולל לכפתור self.driver.execute_script("arguments[0].scrollIntoView(true);", button) time.sleep(1) # מנסה ללחוץ באמצעות JavaScript print("מנסה ללחוץ על כפתור ההקפצה...") self.driver.execute_script("arguments[0].click();", button) print("לחיצה על כפתור ההקפצה") # מחכה קצת ואז מרענן את הדף time.sleep(2) print("מרענן את הדף...") self.driver.refresh() # מחכה לטעינת הדף print("ממתין לטעינת הדף...") self.wait_for_page_load() print("הדף נטען") # מחכה קצת זמן אחרי ההקפצה time.sleep(3) except Exception as e: print(display_rtl(f"שגיאה בהקפצת מודעה {i + 1}: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return True except Exception as e: print(display_rtl(f"נכשל בהקפצת המודעות: {str(e)}")) if hasattr(e, 'msg'): print(f"Message: {e.msg}") return False def navigate_to_my_ads(self): """מנווט לדף המודעות שלי ומחכה שהדף יטען""" self.driver.get('https://www.yad2.co.il/my-ads') # מחכה שהדף יטען print(display_rtl("ממתין לטעינת הדף...")) WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) # מחכה שה-splash screen ייעלם print(display_rtl("ממתין שמסך הטעינה ייעלם...")) try: splash_screen = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "splash-screen_box__diyY1")) ) WebDriverWait(self.driver, 20).until( EC.staleness_of(splash_screen) ) print(display_rtl("מסך הטעינה נעלם")) except: print(display_rtl("לא נמצא מסך טעינה")) # מחכה שיופיע התוכן האמיתי print(display_rtl("ממתין לטעינת התוכן...")) time.sleep(3) def wait_for_page_load(self): WebDriverWait(self.driver, 30).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) def close(self): try: self.driver.quit() except: pass def main(): updater = None try: while True: # לולאה אינסופית print("\nמתחיל הרצה חדשה...") updater = ListingUpdater() updater.load_cookies() if updater.check_login_status(): print(display_rtl("התחברות באמצעות עוגיות הצליחה!")) else: print(display_rtl("צריך להתחבר שוב...")) updater.manual_login() print(display_rtl("\nמתחיל את תהליך העדכון...")) updater.update_listings() updater.close() # מחכה 4 שעות ודקה print("\nממתין 4 שעות ודקה עד להרצה הבאה...") time.sleep((4 * 60 * 60) + 60) # 4 שעות + דקה בשניות except KeyboardInterrupt: print("\nהתוכנית הופסקה על ידי המשתמש") finally: if updater: updater.close() if __name__ == "__main__": main()
יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?
-
@aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?
0
לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"
@EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?
0
לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"
נסה את https://anti-captcha.com/ או שירות מקביל
-
@EBA כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@aiib כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
יש לך את זה בתוכנה מוכנה? איך אני מפעיל אותו?
0
לא, ובכלל כרגע הוא רוב הפעמים נתקע באימות של "אני לא רובוט"
נסה את https://anti-captcha.com/ או שירות מקביל
-
מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.
אז לא צריך לדעת לכתוב קוד, לא צריך לדעת אפילו אנגלית. פשוט לשוחח בעברית עם הצ'אט ולראות את הקסם.
יש לי חבר שאינו יודע תיכנות בכלל, וגם אנגלית הוא כמעט לא יודע, ויצר תוכנה רצינית של ניהול קבוצות של ריפוי בעיסוק, הכל באמצעות הכלים הללו.
כאן אני אתן פירוט על שלשה כלים כאלו:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf.
היתרון המרכזי הוא המחיר:חינמי ללא הגבלה.יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.
במובנים מסויימים של איכות הוא עדיף לדעתי על הכלי הקודם, אם כי התחרות פתוחה והגרסאות של שני הכלים מתעדכנות כל העת.
הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.
@sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
בקיצור, תודה רבה!
(השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!) -
@sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
בקיצור, תודה רבה!
(השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!)@צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@sivan22 היום ב"ה בניתי עם זה (האפשרות הראשונה) תוכנה פשוטה כלשהי (עיין כאן) עזר לי הידע הבסיסי והמועט מאד שלמדתי מתוך הפורום, אבל זה היה פשוט נפלא, הוא גם קימפל לי לבד והתקין לי את זה במחשב בתוך תיקייה שהוא יצר לי איפה שביקשתי! (הארכתי כאן)
בקיצור, תודה רבה!
(השתמשתי בו בעבר, אבל אז לא היה צריך להתקין אותו, והיית מסתבך עם הקימפול וכו' - עכשיו זה פשוט נפלא!)@צבי-דורש-ציון צודק מאוד ותודה רבה
-
מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.
אז לא צריך לדעת לכתוב קוד, לא צריך לדעת אפילו אנגלית. פשוט לשוחח בעברית עם הצ'אט ולראות את הקסם.
יש לי חבר שאינו יודע תיכנות בכלל, וגם אנגלית הוא כמעט לא יודע, ויצר תוכנה רצינית של ניהול קבוצות של ריפוי בעיסוק, הכל באמצעות הכלים הללו.
כאן אני אתן פירוט על שלשה כלים כאלו:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf.
היתרון המרכזי הוא המחיר:חינמי ללא הגבלה.יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.
במובנים מסויימים של איכות הוא עדיף לדעתי על הכלי הקודם, אם כי התחרות פתוחה והגרסאות של שני הכלים מתעדכנות כל העת.
הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.
@sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה
הוא כתב לי שנגמר לי הקרדיטים
מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש? -
@א-ל-0 אתה יוצא מהחשבון שלך באתר שלהם ונכנס עם חשבון חדש
הכוונה עם איזה מייל שבא לך, תכניס אותיות באנגלית ושטרודל באמצע@צבי-דורש-ציון
@מומחה123 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:@א-ל-0 אתה יוצא מהחשבון שלך באתר שלהם ונכנס עם חשבון חדש
הכוונה עם איזה מייל שבא לך, תכניס אותיות באנגלית ושטרודל באמצעככה הייתי עושה תמיד, אבל עכשיו אי אפשר כי בשביל רישום צריך חשבון גוגל,
יש אולי דרך אחרת? -
@צבי-דורש-ציון
@מומחה123 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:@א-ל-0 אתה יוצא מהחשבון שלך באתר שלהם ונכנס עם חשבון חדש
הכוונה עם איזה מייל שבא לך, תכניס אותיות באנגלית ושטרודל באמצעככה הייתי עושה תמיד, אבל עכשיו אי אפשר כי בשביל רישום צריך חשבון גוגל,
יש אולי דרך אחרת?פוסט זה נמחק! -
פוסט זה נמחק!
-
@sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה
הוא כתב לי שנגמר לי הקרדיטים
מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?@צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה
הוא כתב לי שנגמר לי הקרדיטים
מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?בקיצור, אין משהו חינמי לא מוגבל, אבל באיכות טובה? (או לכה"פ מוגבל אבל אחרי איזה חודש חוזר עוד פעם האפשרות).
ניסיתי להוריד את זה מפרופיל נוסף ולהתקין, אבל זה לא מתקין נוסף ונשאר מחובר לפרופיל הישן, יש איך לשנות את זה?
-
@צבי-דורש-ציון כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
@sivan22 כתב בהמלצה | לתכנת בלי לדעת תיכנות - היום זה אפשרי:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf. היתרון המרכזי הוא המחיר: חינמי ללא הגבלה
הוא כתב לי שנגמר לי הקרדיטים
מישהו יודע על דרך לעקוף את זה/אם יש זמן שזה אמור להתחדש?בקיצור, אין משהו חינמי לא מוגבל, אבל באיכות טובה? (או לכה"פ מוגבל אבל אחרי איזה חודש חוזר עוד פעם האפשרות).
ניסיתי להוריד את זה מפרופיל נוסף ולהתקין, אבל זה לא מתקין נוסף ונשאר מחובר לפרופיל הישן, יש איך לשנות את זה?
@צבי-דורש-ציון אפשר להשתמש בcline עם api של ג'מיני. כתבתי יותר פרטים על cline למעלה.
-
@צבי-דורש-ציון אפשר להשתמש בcline עם api של ג'מיני. כתבתי יותר פרטים על cline למעלה.
@sivan22 דבר ראשון תודה רבה! אבל זה חסום בדרגה שלי בנטפרי...
יש איך לשנות את התוכנה שתלך לפרופיל השני שלי? -
לא יודע אם רלוונטי
אבל אחלה לאתר למייל פיקטיבי
https://relay.firefox.com/accounts/fxa/login/?process=login -
מהפכת הAI כבר כאן, ואחד הכלים החמים ביותר לאחרונה הוא עורך קוד עם סוכן AI מובנה בתוכו. יש חלון צ'אט קטן בתוך עורך הקוד, וניתן לשוחח עם מודל של בינה מלאכותית ולהנחות אותו במילים פשוטות מה אנחנו צריכים, והוא כבר יעשה הכל אבל הכל: לכתוב את הקוד, להריץ אותו, לבדוק שגיאות, להתקין תלויות. וכן, הוא מבין עברית מצויין.
אז לא צריך לדעת לכתוב קוד, לא צריך לדעת אפילו אנגלית. פשוט לשוחח בעברית עם הצ'אט ולראות את הקסם.
יש לי חבר שאינו יודע תיכנות בכלל, וגם אנגלית הוא כמעט לא יודע, ויצר תוכנה רצינית של ניהול קבוצות של ריפוי בעיסוק, הכל באמצעות הכלים הללו.
כאן אני אתן פירוט על שלשה כלים כאלו:
הראשון, ועליו אני ממליץ למתחילים, הוא windsurf.
היתרון המרכזי הוא המחיר:חינמי ללא הגבלה.יש מכסה מסויימת חינמית, פשוט להוריד ולהתחיל לשוחח איתו בעברית.השני, עליו אני ממליץ למתקדמים הוא cline - זהו תוסף לVSCODE בקוד פתוח, שכדי להפעיל אותו נדרש API. אפשר להשתמש גם עם API חינמי של גוגל שניתן להשיג מכאן. אם כי איכות יותר טובה תתקבל בשימוש בAPI בתשלום של אנטרופיק, ניתן להטעין החל מ5$. את המפתח ניתן להשיג לאחר הרשמה כאן.
במובנים מסויימים של איכות הוא עדיף לדעתי על הכלי הקודם, אם כי התחרות פתוחה והגרסאות של שני הכלים מתעדכנות כל העת.
הכלי השלישי הוא cursor הוא פועל בשיטה דומה מאד לקודמים, ויש לו תוכנית חינמית מוגבלת למדי, וכמובן תוכניות בתשלום.