-
אני מחפש דרך לקבל את כל הטקסט המוצג למשתמש של דף אינטרנט מתוך קוד js?
ניסיתי בכמה דרכים ואני נתקל בתגובה:
has been blocked by CORS policy: No 'Access-Control-Allow-Origin'
האם יש דרך להסתדר עם זה בצורה כלשהי (לא מדובר על אתר שאני יכול לערוך את הקוד שלו כמובן)
או כל רעיון אחר לעשות את זה? -
- כדאי שתתחיל להבין את הסיבה למגבלה הזו.
- אלא א"כ אתה אתה בעל השרת אין הרבה מה לעשות (וטוב שכך) חוץ מלהשתמש עם שרת Proxy, או לחלופין להשבית את ההגבלה של CORS בדפדפן אם כי אני מניח שהפתרון השני לא בדיוק יעזור לך.
-
@משה-כהן345
אם הפיתרון השני של @רפאל יעזור לך תוכל להשתמש עם התוסף הזה -
@משה-כהן345 שים לב שגם אם תפתור את בעיית ה-CORS יש עוד בעיה שלקבל את "כל הטקסט המוצג למשתמש של דף אינטרנט" תצטרך לממש דפדפן... אם לא שמדובר בדף HTML פשוט בלי שום רינדור דינאמי בצד לקוח על ידי JS.
-
@משה-כהן345
אולי יש דרך יותר קצרה למה שאתה רוצה להגיע בסוף...
אפשר לדעת מאיזה אתר ברצונך לקבל מידע? -
@ivrtikshoret
גיידסטאר, מייל ליצירת קשר עם עמותה. -
פוסט זה נמחק!
-
@משה-כהן345
זה יעזור לך?
יש שם api דהיינו אפשרות לקבל את כל המידע בצורה תכנותית. -
@chagold אמר בקבלת טקסט של דף אינטרנט:
@משה-כהן345
זה יעזור לך?
יש שם api דהיינו אפשרות לקבל את כל המידע בצורה תכנותית.זה נראה ממש טוב אבל לא מצאתי בטבלה נתונים של יצירת קשר?
פיספסתי משהו? -
@משה-כהן345 מכיוון שפרטי יצירת קשר מופיעים בגיידסטאר (אולם הם לא מופיעים בHTML עצמו) פעלתי להבין היכן המקור של הנתונים.
Request
המספר 580023356 מייצג את מזהה העמותה.
POST /apexremote HTTP/1.1 Host: www.guidestar.org.il Content-Type: application/json Referer: https:// Content-Length: 248 { "action": "GSTAR_Ctrl", "method": "getMalkarDetails", "data": [ "580023356" ], "type": "rpc", "tid": 6, "ctx": { "csrf": "_", "vid": "_", "ns": "", "ver": 0 } }
Response
הJSON שחוזר מכיל טלפונים וכתובות דואר אלקטרוני ליצירת קשר.
{ "statusCode": 200, "type": "rpc", "tid": 6, "ref": false, "action": "GSTAR_Ctrl", "method": "getMalkarDetails", "result": { "result": { "addressHouseNum": "20", "addressStreet": "הטורים", "addressZipCode": "9466217", "annualTakinYearsText": " (2021)", "audience": [ "בני ישיבות ואברכים" ], "emailMalkar": "b9707575@gmail.com", "employees": 1, "govConnectionSum": 0, "govSupportLastYear": 2020, "govSupportSum": 505585, "greenInfo": { "description": "אחזקת כולל אברכים , תמיכה וסיוע מיוחדים במועדי ישראל", "email": "b9707575@gmail.com", "phoneNumbers": [ "029707575" ], "year": 2021 }, "hasMalkarPeople": true, "hekdeshBelongingsCount": 0, "hekdeshIsAcademic": false, "hekdeshIsForPrivateAlso": false, "hekdeshMoneyList": [], "hekdeshRealEstateCount": 0, "InactiveMenu": { "documents": false, "govsupport": false, "donations": false, "govservices": true, "people": false, "assets": true, "trustees": true, "places": false, "services": false, "finances": false, "connections": false, "estates": true, "contact": false, "volunteering": true }, "IsExperiencePlace": false, "isStatusActiveText": "עמותה רשומה", "lastModifiedDate": 1636069135000, "lat": 31.788751700000000, "lng": 35.210483400000000, "machoz": "[\"ירושלים\"]", "malkarCities": [ { "lat": 31.768319000000000, "lng": 35.213710000000000 }, { "cityName": "מקום פעילות אחר", "lat": 31.768319000000000, "lng": 35.213710000000000 }, { "lat": 31.768319000000000, "lng": 35.213710000000000 }, { "lat": 31.768319000000000, "lng": 35.213710000000000 } ], "mapGeometryLists": { "info": [ "malkarCities" ], "volunteering": [ "volunteerCities" ], "places": [ "malkarCities" ] }, "members": 7, "nationalInsuranceSum": 0, "phoneNumbers": [ "029707575" ], "submittedPapers": false, "targets": [ { "Activity": "מתן מלגות ללומדים", "Target": "אחזקת כולל אברכים" } ], "tchumPeilut1": "ישיבה - כולל", "tchumPeilutRasham": "ישיבה - כולל", "volunteers": 6, "approval46": true, "cities": [ "ירושלים" ], "city": "ירושלים", "cityNums": [ "3000" ], "greenCities": [ "ירושלים" ], "greenCityNums": [ "3000" ], "greenMalkarDistricts": [ "ירושלים", "ארצי" ], "hasHekdeshEstates": false, "hasProperManagement": true, "hasProperManagement2Years": true, "hasReports": true, "hasSubmittedPapers": false, "hekdeshIsNeedCheck": false, "hekdeshIsReligious": false, "hekdeshIsReligiousNeedCheck": false, "Id": "a002400000ACLiYAAX", "isAmuta": true, "isDeleted": false, "isHekdesh": false, "isHeletz": false, "isOttoman": false, "lastAddDataYear": "2019", "malkarDistricts": [ "ירושלים" ], "malkarLocationIsNational": false, "malkarLocationIsNationalGreen": true, "Name": "ישיבת בית הכרם (ע\"ר)", "orgGoal": "להקים להחזיק ולנהל ישיבות", "orgYearFounded": 1982, "regNum": "580023356", "showApproval46": true, "showDonation": false, "showProperManagement": true, "showReports": true, "showSubmittedPapers": false, "sugHitagdut": "עמותה", "sugHitagdutLabel": "עמותה", "tchumPeilutMain": "חינוך, השכלה והכשרה מקצועית", "tchumPeilutMainNum": "21", "tchumPeilutSecondary": [ "ישיבה - כולל" ], "turnover": 1836211 }, "success": true } }
Request באמצעות Fetch
fetch("https://www.guidestar.org.il/apexremote", { "headers": { "content-type": "application/json", }, "referrer": "_", "referrerPolicy": "origin-when-cross-origin", "body": "{\"action\":\"GSTAR_Ctrl\",\"method\":\"getMalkarDetails\",\"data\":[\"580033249\"],\"type\":\"rpc\",\"tid\":6,\"ctx\":{\"csrf\":\"VmpFPSxNakF5TVMweE1TMHdPRlF3TVRveE1qb3lPQzQ0TkRoYSw4Y2N5TWlWNl8zQ0RZejJ6WEQxNjVXLE9EaG1aV0ky\",\"vid\":\"06624000000VGgM\",\"ns\":\"\",\"ver\":43}}", "method": "POST", }) .then(x => x.json()) .then(console.log)
-
@רפאל אמר בקבלת טקסט של דף אינטרנט:
@משה-כהן345 מכיוון שפרטי יצירת קשר מופיעים בגיידסטאר (והם לא מופיעים בHTML ) חיפשתי היכן המקור של הנתונים.
Request באמצעות Fetch
fetch("https://www.guidestar.org.il/apexremote", { "headers": { "content-type": "application/json", }, "referrer": "_", "referrerPolicy": "origin-when-cross-origin", "body": "{\"action\":\"GSTAR_Ctrl\",\"method\":\"getMalkarDetails\",\"data\":[\"580033249\"],\"type\":\"rpc\",\"tid\":6,\"ctx\":{\"csrf\":\"VmpFPSxNakF5TVMweE1TMHdPRlF3TVRveE1qb3lPQzQ0TkRoYSw4Y2N5TWlWNl8zQ0RZejJ6WEQxNjVXLE9EaG1aV0ky\",\"vid\":\"06624000000VGgM\",\"ns\":\"\",\"ver\":43}}", "method": "POST", }) .then(x => x.json()) .then(console.log)
עזרת לי מאד, תשובה ברורה ומפורטת.
תודה רבה!! -
@משה-כהן345 בכיף גדול.
-
@רפאל סליחה שאני מגיב באיחור..
כשאני מנסה להשתמש בקוד הזה ככה בקוד ה JS שלי אני מקבל שגיאת CROS מהדפדפן, ניסיתי להשתמש בתוסף שהוצע לעיל וכן בתוסף אחר שנראה ממש חזק ומיועד גם לעקיפת CROS וגם חיפשתי עוד מידע על זה ברשת אבל לא הצלחתי למצוא פיתרון לזה.
(נראה מהפוסט שלך שהקוד רץ אצלך ומחזיר תשובה ללא בעיות)
אני ממש אשמח לקבל הסבר - משהו שיאיר את עיני בעניין,
תודה מראש! -
@משה-כהן345 אמר בקבלת טקסט של דף אינטרנט:
(נראה מהפוסט שלך שהקוד רץ אצלך ומחזיר תשובה ללא בעיות)
הוא מנסה את זה בקונסול כנראה, לא בתוך אתר שלו.
-
@משה-כהן345 אמר בקבלת טקסט של דף אינטרנט:
כשאני מנסה להשתמש בקוד הזה ככה בקוד ה JS שלי אני מקבל שגיאת CROS מהדפדפן
וטוב שכך.
התשובה שלי לא נועדה לספק דרך עוקפת Cors. שורות הקוד בפוסט הנ"ל יניבו את התשובה המבוקשת אך ורק באתר שכתובתו guidestar.org.il, אין דרך עוקפת.הוא מנסה את זה בקונסול כנראה, לא בתוך אתר שלו.
אין הבדל.
-
@רפאל אמר בקבלת טקסט של דף אינטרנט:
@משה-כהן345 אמר בקבלת טקסט של דף אינטרנט:
כשאני מנסה להשתמש בקוד הזה ככה בקוד ה JS שלי אני מקבל שגיאת CROS מהדפדפן
וטוב שכך.
התשובה שלי לא נועדה לספק דרך עוקפת Cors. שורות הקוד בפוסט הנ"ל יניבו את התשובה המבוקשת אך ורק באתר שכתובתו guidestar.org.il, אין דרך עוקפת.אני חשבתי ש CROS בא להגן על המשתמש הגולש ולא על האתר.
בכל אופן התוסף שכתבתי עליו אמור לעזור לעקיפת CROS, רק כדי להבין - האם אתה נמנע מלעזור בזה ממניעים עקרוניים\מצפוניים?
-
אני חשבתי ש CROS בא להגן על המשתמש הגולש ולא על האתר.
לחלוטין.
בכל אופן התוסף שכתבתי עליו אמור לעזור לעקיפת CROS
לא הבנתי את הסיטואציה, מי אמור להשתמש בתוסף הזה? האם אתה בונה דף אינטרנט לעצמך בלבד?
האם אתה נמנע מלעזור בזה ממניעים עקרוניים\מצפוניים?
מאיפה הסקת את זה? מה עשיתי עד עכשיו?
-
@רפאל אמר בקבלת טקסט של דף אינטרנט:
לא הבנתי את הסיטואציה, מי אמור להשתמש בתוסף הזה? האם אתה בונה דף אינטרנט לעצמך בלבד?
אני אמור להשתמש בתוסף כדי לקבל תשובה מהשרת של גיידסטאר ללא שגיאת CROS
אני לא בונה דף אינטרנט. אני צריך ליצור לולאה כדי לקבל רשימת מיילים של עמותות. (לשימוש אישי, רק זה לא רלוונטי לאסוף אותם אחד אחד מהדף של כל אחד..)מאיפה הסקת את זה? מה עשיתי עד עכשיו?
זה היה נשמע שאתה נחרץ בגלל ברגע שחשבתי על דרך עוקפת CROS חשבתי שאתה נגד הרעיון.
ברור שעד עכשיו עזרת ובמסירות מעבר למצופה אני באמת מעריך את העזרה הזאת ללא תגמול -
אני אמור להשתמש בתוסף כדי לקבל תשובה מהשרת של גיידסטאר ללא שגיאת CROS
אני לא בונה דף אינטרנט. אני צריך ליצור לולאה כדי לקבל רשימת מיילים של עמותות. (לשימוש אישי, רק זה לא רלוונטי לאסוף אותם אחד אחד מהדף של כל אחד..)
אז למה לך להריץ את הקוד בדפדפן, למה שלא תריץ את הקובץ באמצעות NodeJS?