שליפת מידע מאתר אחר.

  • פותח הנושא s976
  • פורסם בתאריך
  • הוסף לסימניות
  • #1
איך אני יכול לשלוף מידע מאתר אחר?
ניסיתי דרך ajax [השתמשת במתודה 'load' של jquery ]
אבל אבל מקבל שגיאה הבאה:
XMLHttpRequest cannot load http://www.google.co.il/. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.
 
  • הוסף לסימניות
  • #3
תאר לך שהיה אפשר.

היו הרבה אתרים מושכים מידע מג'ימל הפתוח בדפדפן לעיתים קרובות.

זה הודעת אבטחה.
 
  • הוסף לסימניות
  • #4
נכתב ע"י mat;731687:
תאר לך שהיה אפשר.

היו הרבה אתרים מושכים מידע מג'ימל הפתוח בדפדפן לעיתים קרובות.

זה הודעת אבטחה.

אני רוצה להבין... מה הבדל ביני לבין דפדפן? זאת אומר, הרי באופן רגיל הדפדפן שולח שאילתא של http לגוגל (לצורך משל) וגוגל עונה לה ברצון. אז למה אני (זאת אומרת התוכנה החיצונית שלי) לא יכול לשלוח שאילתא בצורה ידנית ושגוגל יענה לי, וישלח לי הפלט html ואני אעשה אתו מה שאני רוצה.
 
  • הוסף לסימניות
  • #5
כעקרון אפשר להשתמש בajax עם jquery רק באותו שרת, ואי אפשר לשלוף משרת אחר. זה לדעתי לא עניין של אבטחה אלא עניין של פונקצונליות.
 
  • הוסף לסימניות
  • #7
נכתב ע"י KingYes;731651:
תקרא על CROSS DOMAIN..

אולי תוכל להמליץ לי היכן כדאי לקרוא על זה?
כי בינתיים כל מקום שניסיתי לא בדיוק עזר לי.
 
  • הוסף לסימניות
  • #8
נכתב ע"י Uדה;731879:
כעקרון אפשר להשתמש בajax עם jquery רק באותו שרת, ואי אפשר לשלוף משרת אחר. זה לדעתי לא עניין של אבטחה אלא עניין של פונקצונליות.
לפי מה שניסיתי זה לא מדויק. אני מצליח להוציא דברים מסוימים מאתרים אחרים.
למשל
קוד:
$("body").load("https://graph.facebook.com/351673998185749");
עובד כמו שצריך
 
  • הוסף לסימניות
  • #9
נכתב ע"י KingYes;731651:
תקרא על CROSS DOMAIN..
האם זה מה שהתכוונת:
Access Across Domains

For security reasons, modern browsers do not allow access across domains.

This means, that both the web page and the XML file it tries to load, must be located on the same server.

The examples on W3Schools all open XML files located on the W3Schools domain.

If you want to use the example above on one of your web pages, the XML files you load must be located on your own server.
מ: http://www.w3schools.com/dom/dom_parser.asp
Additional Notes:
Due to browser security restrictions, most "Ajax" requests are subject to the same origin policy; the request can not successfully retrieve data from a different domain, subdomain, or protocol.
מ: http://api.jquery.com/jQuery.ajax/

במילים אחרות, אם אני מבין נכון, למעשה אין אפשרות כזו...
 
  • הוסף לסימניות
  • #11
תודה רבה !!!
 
  • הוסף לסימניות
  • #12
נכתב ע"י Uדה;731879:
כעקרון אפשר להשתמש בajax עם jquery רק באותו שרת, ואי אפשר לשלוף משרת אחר. זה לדעתי לא עניין של אבטחה אלא עניין של פונקצונליות.
תודה רבה. אתה ממש צודק. מכל הדברים שהתבארו כאן על ידכם, הבנתי שבעיקרון אין שום בעיה לקבל תוכן של ממש כל דף ברשת, אלא שהבעיה היא שJS נעול לענין זה. ולכן אפשר להשתמש בכל דבר אחר חוץ מJS. למשל בPHP. כך שהקוד הזה:
PHP:
<?php
$my=fopen("http://www.prog.co.il/forumdisplay.php?f=15", "r");

while(!feof($my)) {
    print fgets($my);
}

fclose($my);
?>
עובד ממש מצוין. אני מקבל את הדף, ויכול לעשות אתו כל מה שבא לי.

תודה רבה לכולכם. ל-KingYes במיוחד.
 
  • הוסף לסימניות
  • #13
יפה..
פעם הבאה אל תדלג על התגובות שלי.. אני לא סתם כותב מילים :)
 
  • הוסף לסימניות
  • #14
נכתב ע"י KingYes;732767:
יפה..
פעם הבאה אל תדלג על התגובות שלי.. אני לא סתם כותב מילים :)
אכן.
אין כמוך.
רק שהפער בינינו כ"כ גדול, שלא כ"כ קל לי להבין את המילים הקצרות שלך. ;)
 
  • הוסף לסימניות
  • #15
בעקבות הנושא המדובר עלה לי רעיון...
כבר מזמן הפריע לי שכאשר אני שואל כאן בפורום (וכן בפורומים אחרים) איזו שאלה, איני יודע מתי כבר ענו עליה, וצריך להיכנס ולבדוק שוב ושוב. אז חשבתי שאשפר לעשות תוכנה פשוטה ששולפת מידע משדה מסוים המראה על כמות התגובות על השאלה, וברגע שיש תגובה חדשה, נשלחת הודעת מייל. כתבתי כבר חלק מהתוכנה, נשאר עוד קצת.

זה מעניין עוד מישהו חוץ ממני?
 
  • הוסף לסימניות
  • #16
נכתב ע"י s976;732949:
בעקבות הנושא המדובר עלה לי רעיון...
כבר מזמן הפריע לי שכאשר אני שואל כאן בפורום (וכן בפורומים אחרים) איזו שאלה, איני יודע מתי כבר ענו עליה, וצריך להיכנס ולבדוק שוב ושוב. אז חשבתי שאשפר לעשות תוכנה פשוטה ששולפת מידע משדה מסוים המראה על כמות התגובות על השאלה, וברגע שיש תגובה חדשה, נשלחת הודעת מייל. כתבתי כבר חלק מהתוכנה, נשאר עוד קצת.

זה מעניין עוד מישהו חוץ ממני?
יש למעלה אפשרות לקבל עידכונים אם מישהו מגיב לך ואתה בוחר את התדירות של קבלת המייל.
 
  • הוסף לסימניות
  • #17
זה חסום בjs רק בגלל אבטחה.
בגלל שבדפדפן יש את הSESSION של אתרים אחרים לכן זה נחסם.

וכתוב את זה מפורש בהודעת השגיאה
XMLHttpRequest cannot load http://www.google.co.il/. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin.

וגם הייתי ממליץ על דרך יותר קצה דרך השרת

http://il2.php.net/manual/en/function.readfile.php


PHP:
readfile ( "http://www.prog.co.il/forumdisplay.php?f=15");
 
  • הוסף לסימניות
  • #18
הקפצה!
איך אפשר לשלוף נתון מתוך אתר, המאוכסן תחת תגית <p>
לדוגמה מכאן
 
  • הוסף לסימניות
  • #19
הקפצה!
איך אפשר לשלוף נתון מתוך אתר, המאוכסן תחת תגית <p>
לדוגמה מכאן
PHP:
$result=file_get_contents("http://exsemple.com");
$result=explode( '<p id="someid" >' , $result) [1];
$result=explode('</p>' , $result )[0];
echo $result;
רק תחליף את שם האתר בשורה הראשונה
ואת תוכן שם התגית p בשורה השניה
 
  • הוסף לסימניות
  • #20
עשית כמצוותך, אך לא מוציא כלום, וגם אין שום שגיאה, אלא דף ריק לגמרי

נ.ב. לתגית אין id, רק class האם זה משנה ?
ככה עשיתי..
PHP:
<?php
$result=file_get_contents("https://www.charidy.com/modzits");
$result=explode( '<p class="jumbo-number text-secondary amount-raised ng-binding">' , $result) [1];
$result=explode('</p>' , $result ) [0];
echo $result;
?>
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה