פייתון- קריאת אתר וכתיבתו באקסל

  • פותח הנושא et28
  • פורסם בתאריך

et28

New member
פייתון- קריאת אתר וכתיבתו באקסל

אני רוצה ליצור לעצמי פרוייקט שיהיה לי שימושי ומלמד כאחד. מטרת הפרוייקט:
לקרוא מאתר חברת האשראי ומאתר הבנק את נתוני ההוצאות שלי, ולכתוב באקסל בקובץ ספציפי את השורות המתאימות.

למה בפייתון? כי זו השפה שאני לומד, וזו נראית לי שפה מתאימה כי היא מתאימה לפרסור (מהמילה phrase) שזה בדיוק מה שאני צריך...

מצרף מה שכתבתי בינתיים:
קוד:
import urllib
import requests

data = {
    'username': '',
    'password': ''}
visalink = "[URL]https://services.cal-online.co.il/Card-Holders/SCREENS/AccountManagement/Login.aspx?ReturnUrl=%2fcard-holders%2fScreens%2fAccountManagement%2fHomePage.aspx[/URL]"

req = requests.post(visalink, data=data)
if req.status_code != 200:
    print "Error loding site, code:", req.status_code
else:
    print req.status_code
    file=open("c:\eitan\\table.txt", 'w')
    readlink = urllib.urlopen(visalink).read()
    file.write(readlink)
כמה הארות:
1. בקובץ table.txt המצורף, אין כל אזכור להוצאה שלי.... כלומר כבר לא הגעתי לאתר הנכון. כיצד אני מגיע לאתר הנכון?
2. לכשאכנס לאתר הנכון- כיצד אני יודע שנכנסתי לאתר הנכון?
3. כמובן ששם המשתמש והסיסמא שאני שם במילון נכונים והם לא ריקים כמו בקוד המצורף.
 

BravoMan

Active member
אתה רוצה תשובה פשוטה או מסובכת?

התשובה הפשוטה היא: בחיים לא תגיע "לאתר הנכון", תשכח מזה ותחשוב על פרויקט אחר.
&nbsp
התשובה היותר מסובכת היא, שהאתר שאתה מנסה לגשת אליו לא בנוי כמו שאתה חושב.
בנקים משקיעים היום די הרבה בבניית אתרים שלהם, במיוחד החלקים באתר שניגשים בפועל למידע של הלקוחות, ואתה לא יכול לצפות עם POST קטן ופשוט להצליח להיכנס, במיוחד שניחשת איך קוראים לפרמטרים במקום לבדוק.
&nbsp
קח בחשבון גם, שניסיון כזה למכן (automate) כניסה אלול להיחשב להפרה של תנאי השימוש של האתר, או הם יכולים לחסום את ה-IP שלך כי יחשבו שהנסיונות שלך הן מתקפה כלשהי.
&nbsp
אם בכל זאת אתה מוכן להסתכן ולנסות, אתה צריך לקרוא את הקוד של עמוד הכניסה לפרטי חשבון, להבין בדיוק אלו פרמטרים (כולל החבויים) נשלחים כשאתה לוחץ "התחבר", ואז לבנות בקשת POST תקינה.
&nbsp
כל זה בהנחה שאין שם עוד אמצעי הגנה \ בקרה ואכן מספיקה בקשת POST אחת כדי להגיע לנתונים.
 

et28

New member
תודה, נראה לי מסובך בשבילי כרגע אבל

אשמח לפרוייקטים שמלמדים פייתון...
בגוגל מצאתי תרגילים ממש למתחילים ברמת: קלוט מהמשתמש קלט, אם X אז תעשה ככה, אם Y תעשה אחרת...

איפה אפשר למצוא פרוייקטים ברמה שלי?
 

BravoMan

Active member
שאלה טובה...

אני לא יודע מה בדיוק הרמה שלך, וכל פרויקט מעניין באמת דורש ידע מעבר לשפת תכנות בלבד.
&nbsp
הרי שפת תכנות היא רק כלי - כמו שלנגר לא מספיק פטיש כדי לבנות שולחן, כך למתכנת לא מספיקה שפת תכנות כדי לבנות משהו שימושי.
&nbsp
אחד המקומות שנוהגים להפנות מתכנתים חדשים הוא פרויקט יולר:
https://projecteuler.net
&nbsp
אבל, הכיוון שם הוא יותר פתרון בעיות מתמטיות ואלגוריתמיות מאשר תרגול של שפת תכנות כזו או אחרת (אתה יכול לפתור את הבעיות בעזרת כל שפת תכנות שתרצה).
&nbsp
תרגילים עבור שפות תכנות ספציפיות נראים בד"כ בדיוק כמו שתיארת - קלוט X, תעשה איתו Y, כי המטרה שלהם היא לתרגל סינטקס ושימוש בשפה, עם כמה שפחות "מסביב".
&nbsp
לדעתי הכיוון המקורי שלך היה נכון:
אתה צריך לחשוב על פרויקט שימושי שמעניין אותך אישית.
&nbsp
הפרויקט עם אתר הבנק היה בחירה בעייתית בגלל קשיים טכניים שהבנק מערים (לצורכי אבטחה), קשיים ביורוקרטיים (כללי שימוש), ובגלל שכנראה חסר לך ידע בחלק הנוסף של הפרויקט - מבנה ותכנות אתרים.
&nbsp
אבל אולי יש משהו אחר שיכול לשמש אותך, ויהיה מעניין למכן אותו עם Python, אבל הדרישות "מסביב" יהיו נמוכות יותר.
&nbsp
Python היא שפה מאוד וורסטילית - אפשר לכתוב בה סקריפטים שרצים משורת פקודה, אפשר לכתוב בה יישומים גרפיים ואפילו משחקים, ואפשר גם לכתוב בה צד שרת של יישומי WEB.
&nbsp
אז תחשוב מה חסר לך במחשב היום, ואולי תמצא משהו שאתה כן יכול לבנות.
 

EyesToSee

New member
אתה צריך לדעת אקסל ו....

בנק הפועלים (אני מניח כי גם הבנקים האחרים מאפשרים זאת) מאפשר קבלת נתונים אישיים בפורמט אקסל מתוך האתר שלו.
מתוך קובץ הנתונים שהורדת, תוכל לבצע כל עיבוד שתרצה.

אני ממליץ (אם קיים ידע מינימלי באנגלית ) על קורסים מקוונים שמלמדים שפת פייתון.
התחל חיפוש בגוגל עם EDX.
 
למעלה