[උදව්] bot හරි ඔටෝමේශන් හරි දන්න වැඩ්ඩො ඉන්නවද?

Gingy

Well-known member
  • Oct 23, 2023
    6,972
    13,074
    113
    මට එන ෆයිල් වගයක් තියෙනවා. ඒවා එකින් එක සයිට් එකකට අප්ලෝඩ් කරන්න ඕන.

    සබ්මිට් බට්න් එක එබුවාම ෆයිල් එක එතනට දාන ඩ්‍රොප් බොක්ස් එකක් තියෙනවා. ඊට පස්සෙ යට ටික් මාක් 3ක් තියෙනවා ඒටික ක්ලික් කලාට පස්සෙ සබ්මිට් බට්න් එක ඔබන්න තියෙනවා. මොකුත් කැප්චා එහෙම එන්නෙ නැහැ

    මේ මගුල දවසට සිය පාරක් විතර කරන්න තියෙනවා එපා වෙලා තියෙන්නෙ. මට ඒ එන ඒවා ෆෝල්ඩර් එකකට වැටෙන්න හදාගන්න පුළුවන්, ඔය ටික ඔටෝමේට් කරන්න විදියක් තියෙනවද? රිසාල්ට් එක ආවාම ඩවුන්ලෝඩ් කරගන්න කෑල්ලත් තියෙනව නම් හොඳයි ඒ නැතත් ඔය අප්ලෝඩ් ටික කෙරුනත් ඇති. අප්ලෝඩ් කරන සයිට් එක අයිති උන්ට කතා කලා උන් API එකක් දෙන්න කැමති නෑ.

    වෙනම මේකට VPS එකක් උනත් අරන් දාන්න පුළුවන්

    එනි අයිඩියාස් කුකුලොහ්?
     

    StealthySeeker

    Well-known member
  • Mar 15, 2024
    2,424
    3,110
    113
    Playwright with codegen, podi automation kallak Liya Gena run wenna dannna, mita wada Hoda solution ekk thiyenne puluwan MN danne ne
     
    • Like
    Reactions: Gingy

    Praveen1989

    Well-known member
  • Sep 29, 2025
    446
    347
    63
    ඔව්, මේකට විසඳුම් කීපයක් තියෙනවා! ඔබේ අවශ්‍යතාවය සම්පූර්ණයෙන්ම **web automation** එකකට හොඳයි. මෙන්න options කීපයක්:

    ## 1️⃣ **Selenium/Playwright (ඉතාම නිර්දේශිතයි)**

    මේක බ්‍රව්සර් එකක් automate කරලා මනුෂ්‍යයෙක් වගේම වැඩ කරනවා.

    **Selenium (Python) උදාහරණය:**
    ```python
    from selenium import webdriver
    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

    # Setup
    driver = webdriver.Chrome()
    folder_path = "/path/to/your/files"
    files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')] # file type එක වෙනස් කරන්න

    for file in files:
    try:
    # Site එකට යන්න
    driver.get("https://yoursite.com/upload")

    # File upload කරන්න
    file_input = driver.find_element(By.CSS_SELECTOR, "input[type='file']")
    file_input.send_keys(os.path.join(folder_path, file))

    # 3 checkboxes tick කරන්න
    checkboxes = driver.find_elements(By.CSS_SELECTOR, "input[type='checkbox']")
    for checkbox in checkboxes[:3]: # පළමු 3 tick කරනවා
    checkbox.click()

    # Submit button click කරන්න
    submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
    submit_btn.click()

    # Result එනතුරු බලාගෙන ඉන්න
    WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".result-download"))
    )

    # Download link එක click කරන්න
    download_link = driver.find_element(By.CSS_SELECTOR, "a.download")
    download_link.click()

    time.sleep(5) # Download එක complete වෙන්න කාලය
    print(f"✅ {file} සාර්ථකයි!")

    except Exception as e:
    print(f"❌ {file} fail: {e}")

    driver.quit()
    ```

    ## 2️⃣ **Playwright (වේගවත්, නවීන)**

    Selenium වලට වඩා හොඳයි, headless mode එකත් වැඩකරනවා.

    ```python
    from playwright.sync_api import sync_playwright
    import os

    def automate_upload(file_path):
    with sync_playwright() as p:
    browser = p.chromium.launch(headless=False) # headless=True නම් බ්‍රව්සර් නොපෙන්වා
    page = browser.new_page()

    page.goto("https://yoursite.com/upload")

    # File upload
    page.set_input_files("input[type='file']", file_path)

    # Checkboxes tick කරන්න
    checkboxes = page.locator("input[type='checkbox']")
    for i in range(3):
    checkboxes.nth(i).check()

    # Submit
    page.click("button:has-text('Submit')")

    # Download
    with page.expect_download() as download_info:
    page.click("a:has-text('Download')")
    download = download_info.value
    download.save_as(f"results/{download.suggested_filename}")

    browser.close()

    # ලූප් එක
    for file in os.listdir("uploads"):
    automate_upload(f"uploads/{file}")
    ```

    ## 3️⃣ **VPS එකෙන් Schedule කරන්න**

    VPS එකක් තියෙනවා නම්:
    - **Cron job** එකක් හදාගෙන දවසකට වතාවක් run කරන්න පුළුවන්
    - **Screen/tmux** use කරලා long-running script එකක් දාන්න පුළුවන්
    - Docker container එකක් හදලා ඒකෙන් automate කරන්න පුළුවන්

    ```bash
    # Cron example (දවසකට 2 වතාවක්)
    0 9,17 * * * cd /path/to/script && python3 upload_automation.py
    ```

    ## 4️⃣ **Browser Extension (Alternative)**

    Tampermonkey/Greasemonkey වගේ extension එකක් හදලා JavaScript එකෙන් automate කරන්න පුළුවන්. ඒත් මේකට files access කරන්න අමාරු නිසා මම ඒක recommend කරන්නේ නෑ.

    ---

    ## 🎯 මගේ Recommendation:

    **Playwright + VPS** - මේක වේගවත්, stable, හොඳට maintain වෙනවා. Headless mode එකෙන් background එකේ දුවන්න පුළුවන්.

    **Setup කරන විදිය:**
    ```bash
    pip install playwright
    playwright install chromium
    ```

    Site එකේ selectors (CSS/XPath) හොයාගන්න බ්‍රව්සර් එකේ DevTools (F12) use කරන්න.

    මට site එකේ URL එක සහ HTML structure එක තියෙනවා නම් ඔබට ready-to-use script එකක් හදලා දෙන්න පුළුවන්! 🚀
     
    • Love
    Reactions: Martian Professor

    sinhawanshaya

    Well-known member
  • Jul 28, 2024
    13,928
    11,364
    113
    මට එන ෆයිල් වගයක් තියෙනවා. ඒවා එකින් එක සයිට් එකකට අප්ලෝඩ් කරන්න ඕන.

    සබ්මිට් බට්න් එක එබුවාම ෆයිල් එක එතනට දාන ඩ්‍රොප් බොක්ස් එකක් තියෙනවා. ඊට පස්සෙ යට ටික් මාක් 3ක් තියෙනවා ඒටික ක්ලික් කලාට පස්සෙ සබ්මිට් බට්න් එක ඔබන්න තියෙනවා. මොකුත් කැප්චා එහෙම එන්නෙ නැහැ

    මේ මගුල දවසට සිය පාරක් විතර කරන්න තියෙනවා එපා වෙලා තියෙන්නෙ. මට ඒ එන ඒවා ෆෝල්ඩර් එකකට වැටෙන්න හදාගන්න පුළුවන්, ඔය ටික ඔටෝමේට් කරන්න විදියක් තියෙනවද? රිසාල්ට් එක ආවාම ඩවුන්ලෝඩ් කරගන්න කෑල්ලත් තියෙනව නම් හොඳයි ඒ නැතත් ඔය අප්ලෝඩ් ටික කෙරුනත් ඇති. අප්ලෝඩ් කරන සයිට් එක අයිති උන්ට කතා කලා උන් API එකක් දෙන්න කැමති නෑ.

    වෙනම මේකට VPS එකක් උනත් අරන් දාන්න පුළුවන්

    එනි අයිඩියාස් කුකුලොහ්?
    1. Browser automation
    Or
    2. Open dev tools
    2.1. upload one (or whatever use case)
    2.2 on the network tab, check the requests, payload etc
    2.3 do the same on postman

    Postman lets you automate too.
     

    Martian Professor

    Well-known member
  • Dec 4, 2024
    2,572
    3,321
    113
    s
    ඔව්, මේකට විසඳුම් කීපයක් තියෙනවා! ඔබේ අවශ්‍යතාවය සම්පූර්ණයෙන්ම **web automation** එකකට හොඳයි. මෙන්න options කීපයක්:

    ## 1️⃣ **Selenium/Playwright (ඉතාම නිර්දේශිතයි)**

    මේක බ්‍රව්සර් එකක් automate කරලා මනුෂ්‍යයෙක් වගේම වැඩ කරනවා.

    **Selenium (Python) උදාහරණය:**
    ```python
    from selenium import webdriver
    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

    # Setup
    driver = webdriver.Chrome()
    folder_path = "/path/to/your/files"
    files = [f for f in os.listdir(folder_path) if f.endswith('.pdf')] # file type එක වෙනස් කරන්න

    for file in files:
    try:
    # Site එකට යන්න
    driver.get("https://yoursite.com/upload")

    # File upload කරන්න
    file_input = driver.find_element(By.CSS_SELECTOR, "input[type='file']")
    file_input.send_keys(os.path.join(folder_path, file))

    # 3 checkboxes tick කරන්න
    checkboxes = driver.find_elements(By.CSS_SELECTOR, "input[type='checkbox']")
    for checkbox in checkboxes[:3]: # පළමු 3 tick කරනවා
    checkbox.click()

    # Submit button click කරන්න
    submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
    submit_btn.click()

    # Result එනතුරු බලාගෙන ඉන්න
    WebDriverWait(driver, 30).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, ".result-download"))
    )

    # Download link එක click කරන්න
    download_link = driver.find_element(By.CSS_SELECTOR, "a.download")
    download_link.click()

    time.sleep(5) # Download එක complete වෙන්න කාලය
    print(f"✅ {file} සාර්ථකයි!")

    except Exception as e:
    print(f"❌ {file} fail: {e}")

    driver.quit()
    ```

    ## 2️⃣ **Playwright (වේගවත්, නවීන)**

    Selenium වලට වඩා හොඳයි, headless mode එකත් වැඩකරනවා.

    ```python
    from playwright.sync_api import sync_playwright
    import os

    def automate_upload(file_path):
    with sync_playwright() as p:
    browser = p.chromium.launch(headless=False) # headless=True නම් බ්‍රව්සර් නොපෙන්වා
    page = browser.new_page()

    page.goto("https://yoursite.com/upload")

    # File upload
    page.set_input_files("input[type='file']", file_path)

    # Checkboxes tick කරන්න
    checkboxes = page.locator("input[type='checkbox']")
    for i in range(3):
    checkboxes.nth(i).check()

    # Submit
    page.click("button:has-text('Submit')")

    # Download
    with page.expect_download() as download_info:
    page.click("a:has-text('Download')")
    download = download_info.value
    download.save_as(f"results/{download.suggested_filename}")

    browser.close()

    # ලූප් එක
    for file in os.listdir("uploads"):
    automate_upload(f"uploads/{file}")
    ```

    ## 3️⃣ **VPS එකෙන් Schedule කරන්න**

    VPS එකක් තියෙනවා නම්:
    - **Cron job** එකක් හදාගෙන දවසකට වතාවක් run කරන්න පුළුවන්
    - **Screen/tmux** use කරලා long-running script එකක් දාන්න පුළුවන්
    - Docker container එකක් හදලා ඒකෙන් automate කරන්න පුළුවන්

    ```bash
    # Cron example (දවසකට 2 වතාවක්)
    0 9,17 * * * cd /path/to/script && python3 upload_automation.py
    ```

    ## 4️⃣ **Browser Extension (Alternative)**

    Tampermonkey/Greasemonkey වගේ extension එකක් හදලා JavaScript එකෙන් automate කරන්න පුළුවන්. ඒත් මේකට files access කරන්න අමාරු නිසා මම ඒක recommend කරන්නේ නෑ.

    ---

    ## 🎯 මගේ Recommendation:

    **Playwright + VPS** - මේක වේගවත්, stable, හොඳට maintain වෙනවා. Headless mode එකෙන් background එකේ දුවන්න පුළුවන්.

    **Setup කරන විදිය:**
    ```bash
    pip install playwright
    playwright install chromium
    ```

    Site එකේ selectors (CSS/XPath) හොයාගන්න බ්‍රව්සර් එකේ DevTools (F12) use කරන්න.

    මට site එකේ URL එක සහ HTML structure එක තියෙනවා නම් ඔබට ready-to-use script එකක් හදලා දෙන්න පුළුවන්! 🚀
    Me widiyata thama ubata karanna wenne bn.....VPS ekak gaththoth file ewana ekaata FTP walin eke Assema folder ekk hadala denna puluwan dapan eekata kiyala..Hadanava Nm kiyapan Help ekk dennam
     

    laka007

    Well-known member
  • Oct 18, 2008
    7,540
    5,766
    113
    issara wage imacro thibbanam winadiye wade
    dan python walin puluwan nedha?
    up thama
     

    yuixin

    Well-known member
  • May 26, 2025
    419
    364
    63
    1. Browser automation
    Or
    2. Open dev tools
    2.1. upload one (or whatever use case)
    2.2 on the network tab, check the requests, payload etc
    2.3 do the same on postman

    Postman lets you automate too.
    this is the most simple way which is what I would do every single time but with curl

    1. identify how the server is handling the requests (headers, payloads etc)

    no captcha means this is a easy task

    2. copy the requests as curl from right clicking

    3. write a shell script or ask an AI to write it according to your needs