אתה צריך לבחור את הטקסט של ההודעה שקיבלת, ואת זה הוא מסנן ושולח....
יהודי טוב
הפורום כעת לקריאה בלבד, לקריאה נוספת.
-
מחיקת חלקים ממיל אוטומט לפני שאנו מעבירים אותו הלאה -
מחיקת חלקים ממיל אוטומט לפני שאנו מעבירים אותו הלאה@THMV כתב במחיקת חלקים ממיל אוטומט לפני שאנו מעבירים אותו הלאה:
מצורפת דוגמא חתוכה! (ללא פרטים אישים)
ה-V בסוף זה כי זה שם השאלה לא נורא אם זה ישארמצרף קוד לסימניה - תבחר את ההודעה במייל ותלחץ על הסימניה, זה יעתיק לך את הטקסט ויסנן את השורות שמתחילות במילה ציון
javascript:(()=>{try{let t=window.getSelection().toString();if(!t)return void alert("לא נבחר טקסט לסינון");navigator.clipboard.writeText(t.split('\n').filter(l=>!l.trim().startsWith("ציון")).join('\n')).then(()=>alert("הטקסט המסונן הועתק ללוח")).catch(e=>alert("אירעה שגיאה בהעתקת הטקסט: "+e))}catch(e){alert("שגיאה: "+e)}})();אם אתה רוצה שיפתח לך גם מייל לשליחה תכתוב את הקוד הזה,
(שים לב לערוך את הכותרת ומיילים לשליחה)javascript:(()=>{try{let t=window.getSelection().toString();if(!t)return void alert("לא נבחר טקסט לסינון");let filteredText=t.split('\n').filter(l=>!l.trim().startsWith("ציון")).join('\n');let mailtoUrl=`https://mail.google.com/mail/?view=cm&fs=1&to=mail1@gmail.com,mail2@gmail.com&su=כותרת&body=${encodeURIComponent(filteredText)}`;window.open(mailtoUrl,'_blank')}catch(e){alert("שגיאה: "+e)}})();כמובן הקרדיט ל GPT.
אגב כן צירפת פרטים אישיים - רואים בצילומסך את מס' הטלפון שהשאיר את ההודעה.
תערוך את זה. -
מחיקת חלקים ממיל אוטומט לפני שאנו מעבירים אותו הלאה -
קוד Node לקבלת נתונים מבנק הפועלים@one1010 כתב בקוד Node לקבלת נתונים מבנק הפועלים:
@יהודי-טוב בעצם הקוד ניגש בעצמו לדפדפן ופותח את החשבון?
כן.
רואים את זה על המסך?
בקוד שכתבתי כן, אתה יכול להסיר את השורה הזו, וזה יגרום שלא יראו את זה על המסך.
headless: false,המחשב חייב להיות דלוק?
כן, המחשב מריץ את זה, ובקוד שלי זה גם הרצה חד"פ, אם אתה רוצה שזה ירוץ כל הזמן אתה צריך לדאוג לזה...
זה אפשרי גם בשאר הבנקים וחברות האשראי?
לא, הקוד הזה מתאים רק לבנק הפועלים.
לשאר הבנקים וחברות אשראי אתה יכול להשתמש בספריה israeli-bank-scrapers.
או להבין בעצמך מה התהליך שקורא כשאתה נכנס לבנק, ולכתוב לבד.מה שכתבת שאני יכול לשלוח במייל, זה לא מופיע בקוד שלך, נכון?
נכון
זה לא קשור.
אם יש לך צורך ספציפי תכתוב (אולי באשכול חדש) ואולי יוכלו לכוון אותך לשם.
הקוד הזה בס"ה מביא את הנתונים. -
קוד Node לקבלת נתונים מבנק הפועלים@one1010 כתב בקוד Node לקבלת נתונים מבנק הפועלים:
איך? בהקלטת תעבורה?
או הקלטת תעבורה או לבדוק בנטוורק.
אגב אתה יכול גם לעשות העברות (אם כי - זה בד"כ מצריך קוד חד"פ כל העברה - ככה זה אצלי - ואם כן לא הרווחת מזה כלום)
-
קוד Node לקבלת נתונים מבנק הפועלים@יוס
אתה רואה דפדפן שנפתח?
מה אתה רואה בדפדפן?יכול להיות שפעם ראשונה צריך קוד חד"פ.
תנסה להוסיף אחרי הכניסה את השורות האלו
const currentUrl = page.url(); console.log(currentUrl);אתה אמור לקבל את זה:
https://login.bankhapoalim.co.il/ng-portals/rb/he/homepage@one1010
בדוגמא הזו אני מושך:
רשימה עם כל החשבונות בנק.
על כל חשבון פרטים בסיסיים ותנועות (מהשנה האחרונה או תאריכים שצוינו).אם אתה רוצה למשוך משהו נוסף אתה יכול לבדוק באתר של הבנק לאיזה כתובת מתבצעת הפניה ולהוסיף את זה לmap שיוסיף את זה עבור כל חשבון.
-
קוד Node לקבלת נתונים מבנק הפועלים@one1010 כתב בקוד Node לקבלת נתונים מבנק הפועלים:
אתה מצליח למשוך את המידע בפועל?
כן
אשמח להבין יותר מה אתה מקבל.
אני שומר את זה בקובץ json בתיקיה של הפרויקט.
אתה יכול לעשות עם זה מה שבא לך - ליצור מזה קובץ אקסל, לשלוח מייל, להריץ משימה שתבדוק כל הזמן אם יש נתונים חדשים ותתריע לך על זה וכו'...
אבל זה כבר לא קשור למשיכת הנתונים מהבנק.
מה שכתבתי זה לא מוצר שמתאים לצורך ספציפי - אלא רק מושך מהבנק נתונים על החשבון ואתה מחליט מה לעשות עם זה.
בנוסף שים לב שצריך להתקין את הספריות שאני מייבא.
-
קוד Node לקבלת נתונים מבנק הפועליםראיתי את הספריה israeli-bank-scrapers
התלבטתי אם להשתמש בזה.
אמרתי שאני ינסה ויראה עד כמה זה מורכב לממש את זה בעצמי.
תכלס כתבתי את זה עם עזרת GPT, וקיבלתי תוצאה טובה. (יש לי יותר מידע ממה שהם מחזירים, ואני יכול גם להוסיף כל הזמן כל מידע שאני צריך)
מצרף את הקובץ
const puppeteer = require('puppeteer'); const axios = require('axios'); const fs = require('fs'); const poalim = async (userCode, password, tranStartDate = null, tranEndDate = null) => {//dates in format yyyymmdd // פתיחת הדפדפן במצב דיבוג (headful) const browser = await puppeteer.launch({ headless: false, // הופך את המצב ל-Headful }); const pages = await browser.pages(); const page = pages[0]; // שימוש בטאב הראשון await page.goto("https://login.bankhapoalim.co.il/ng-portals/auth/he/"); // הזנת מידע לתוך האינפוטים await page.type('#userCode', userCode); // הזנת טקסט לאינפוט הראשון (לפי מזהה id) await page.type('#password', password); // הזנת טקסט לאינפוט השני (לפי מזהה id) // לחיצה על כפתור מסוג submit עם הטקסט "כניסה" await page.evaluate(() => { const button = Array.from(document.querySelectorAll('button[type="submit"]')) .find(el => el.innerText === 'כניסה'); if (button) button.click(); }); await page.waitForNavigation(); // שליפת עוגיות const cookies = await page.cookies(); // יצירת מחרוזת עוגיות עבור בקשות HTTP const cookieHeader = cookies.map(cookie => `${cookie.name}=${cookie.value}`).join('; '); // שליחת בקשה HTTP עם העוגיות const accounts = await axios.get('https://login.bankhapoalim.co.il/ServerServices/general/accounts', { headers: { 'Cookie': cookieHeader, // שימוש בעוגיות שהתקבלו }, }); // קביעת תאריכים עם ברירת מחדל אם לא סופקו const startDate = tranStartDate || new Date(new Date().setFullYear(new Date().getFullYear() - 1)).toISOString().split('T')[0].replace(/-/g, ''); const endDate = tranEndDate || new Date().toISOString().split('T')[0].replace(/-/g, ''); // עיבוד כל החשבונות במקביל const enrichedAccounts = await Promise.all( accounts.data.map(async (account) => { const accountId = `${account.bankNumber}-${account.branchNumber}-${account.accountNumber}`; // בקשה לפרטי היתרה והקרדיט const metadataPromise = axios.get( `https://login.bankhapoalim.co.il/ServerServices/current-account/composite/balanceAndCreditLimit?accountId=${accountId}&view=details&lang=he`, { headers: { 'Cookie': cookieHeader } } ); // בקשה לרשימת תנועות const transactionsPromise = axios.get( `https://login.bankhapoalim.co.il/ServerServices/current-account/transactions?accountId=${accountId}&numItemsPerPage=1000&retrievalEndDate=${endDate}&retrievalStartDate=${startDate}&sortCode=1`, { headers: { 'Cookie': cookieHeader } } ); // מחכים לשתי הבקשות במקביל const [metadataResponse, transactionsResponse] = await Promise.all([metadataPromise, transactionsPromise]); // החזרת האובייקט המועשר return { ...account, metadata: metadataResponse.data, transactions: transactionsResponse.data, }; }) ); const now = new Date().toISOString().replace(/[-:T]/g, '').slice(0, 8) + '_' + new Date().toTimeString().slice(0, 5).replace(/:/g, ''); // כתיבת התוצאה לקובץ JSON fs.writeFileSync(`bank_${now}.json`, JSON.stringify(enrichedAccounts, null, 2)); await page.deleteCookie(...cookies);// מחיקת עוגיות await browser.close(); // סגירת הדפדפן } poalim('userName', 'password'); -
מישהו מכיר איזה תוסף שיכול להגביל את ההכחלה של השורה@THMV
שאלתי אותו בשבילך..תיצור סימניה חדשה בכרום,
ובערך של הURL תדביק את הטקסט הבא:
ותיכנס לאתר, ותלחץ על הסימניה ואח"כ תלחץ על העמודה שאתה רוצה להעתיק.
כשאתה מסיים תוכל ללחוץ שוב על הסימניהבדקתי את זה על הטבלאות כאן וזה עבד מעולה, אם זה לא עובד באתר שאתה צריך יכול להיות שזה עובד בצורה שונה.
javascript:(function() { let active = false; let selectedColumnIndex = null; const highlightClass = 'highlight-column'; const style = document.createElement('style'); style.textContent = ` .${highlightClass} { background-color: rgba(255, 255, 0, 0.3); } `; document.head.appendChild(style); function clearHighlights(table) { table.querySelectorAll(`.${highlightClass}`).forEach(cell => { cell.classList.remove(highlightClass); }); } function mouseOverHandler(event) { const cell = event.target.closest('td, th'); if (cell && (cell.parentElement.parentElement.tagName === 'TBODY' || cell.parentElement.parentElement.tagName === 'THEAD')) { const table = cell.closest('table'); if (!table) return; clearHighlights(table); const columnIndex = [...cell.parentElement.children].indexOf(cell); selectedColumnIndex = columnIndex; table.querySelectorAll('tr').forEach(row => { const columnCell = row.children[columnIndex]; if (columnCell) { columnCell.classList.add(highlightClass); } }); } } function clickHandler(event) { const cell = event.target.closest('td, th'); if (cell && selectedColumnIndex !== null) { const table = cell.closest('table'); if (!table) return; const columnData = []; table.querySelectorAll('tr').forEach(row => { const columnCell = row.children[selectedColumnIndex]; if (columnCell) { columnData.push(columnCell.textContent.trim()); } }); navigator.clipboard.writeText(columnData.join('\n')).then(() => { alert('ההעתקה בוצעה בהצלחה!'); }).catch(err => { console.error('Failed to copy text: ', err); alert('שגיאה בהעתקה ללוח ההעתקה.'); }); } } if (!window.toggleTableColumnCopy) { window.toggleTableColumnCopy = function() { if (!active) { document.addEventListener('mouseover', mouseOverHandler); document.addEventListener('click', clickHandler); alert('הפונקציונליות הופעלה!'); } else { document.removeEventListener('mouseover', mouseOverHandler); document.removeEventListener('click', clickHandler); clearHighlights(document); alert('הפונקציונליות הופסקה!'); } active = !active; }; } toggleTableColumnCopy(); })(); -
מישהו מכיר איזה תוסף שיכול להגביל את ההכחלה של השורה -
קריאת התנ"ך
מעניין למה?
-
איך לדמות צביטה במסך מגע במחשבתודה מדהים, בול מה שהייתי צריך..
-
איך לדמות צביטה במסך מגע במחשבאני צריך לבדוק את המחוות שיש בסמאטרפונים - במחשב.
אצבע אחת הצלחתי לדמות בכרום כששיניתי את התצוגה למובייל.
יש לי מחשב נייד עם משטח לעכבר - והייתי רוצה לבדוק מחוות עם כמה אצבעות.
יש מישהו שהתעסק עם זה?
תודה רבה
-
אני רוצה ליצור הקלטה מתוך טקסט בAI , מחפש המלצותאתה יכול גם לנקד, הקולות של גוגל טובים יותר - (בעברית, בכל אופן)
-
התנהלות עם טבלאות עסקאות בנדרים פלוסאתה יכול לעלות לרמה אחת מעל את השנה, בהגדרות של הפיווט.
-
חשבון גוגל שנחסם@Shmuel754 כתב בחשבון גוגל שנחסם:
תנסה לשחזר מאותו מחשב שהתחברת בעבר
ניסיתי ולא עוזר
ואם יש IP קבוע עוד יותר טוב.
אין לי
-
חשבון גוגל שנחסםמוגדר לי מייל לשחזור חשבון, אבל זה לא מספיק להם.
-
חשבון גוגל שנחסםאני מגיע לשלב הזה אחרי שאני מאמת את המייל.
לא זוכר אם כתבתי מס' לאימות, בכל אופן ניסיתי עם המספרים שלי וזה לא עבד.
-
חשבון גוגל שנחסםפתחתי חשבון גוגל מכמה מחשבים, וגוגל חסמו לי את זה ודורשים אימות טלפוני.
הבעיה היא שכל מספר שאני כותב (גם מספרים שמקבלים SMS) אני מקבל את השגיאה:
"לא ניתן להשתמש במספר הטלפון הזה לאימות."

וכשניסיתי שוב קיבלתי את המסך הזה:

מה אני יכול לעשות?
תודה רבה
-
וואצאפ ווב בנטפרי אין עדכון חדש לאפליקציה@A0533057932
הבעיה היא באימולטור שמריץ את האפלקציה, ולכן זה לא נראה לי קשור.