![]() |
קבלת מספר התוצאות בגוגל ב PHP
http://www.google.co.il/#hl=iw&q=israel
כתוב תוצאות 1 - 10 מתוך כ- 298,000,000 עבור israel (0.13 שניות איך אני יכול לקבל את ה 298 מיליון תוצאות האלה למשתנה עיינתי בSOURCE של הדף כדי לקבל את זה ע"י file_get_contents אבל זה לא רשום שם אשמח לעזרה |
אין לי הסבר אבל כאן זה נוח:
http://www.google.co.il/search?hl=iw&q=israel |
ציטוט:
איך אפשר לדעת? |
סתכל על הsource.....
טיפ: חפש <p id=resultStats> |
ציטוט:
אני רואה שאתה כתבת כתובת URL שונה משלי אשמח לדעת מה שינית בה.... |
מה זאת אומרת..
כתובת אחרת.. לא שיניתי את שלך פשוט לקחתי את זאת. |
חבל לעשות את זה בצורה כזאת, גוגל יחסום את ה-IP מהר מאוד.
כדאי להשתמש ב- Search API שלהם על מנת לבצע חיפושים ודברים כאלה |
ציטוט:
אם אני פשוט קורא דף חיפוש של גוגל(וכן נגיד שזה מספר פעמים רב) למה שגוגל יחסמו את ה IP שלי?? |
בתכלס הוא צודק.
אם זה הרבה פעמים בסוף זה לא יצא טוב. לgoogle יש api (שלא השתמשתי בו עדיין) במיוחד בשביל זה, הפלט הוא XML עד כמה שזכור לי. |
ציטוט:
בנוסף למה שגוגל יחסמו? אני רק ניכנס לדף תוצאות |
ציטוט:
http://code.google.com/intl/iw/apis/ajaxsearch/ למה שיחסמו? כי עבור סקריפטים ורובוטים אוטומטים שרוצים לקבל תוצאות חיפוש הם יצרו API שנותן את זה. כאשר אתה מבקש מהם עמוד HTML זה "עולה" הרבה יותר (תעבורה, זמן עיבוד לשרתים וכו') מאשר לקבל פלאט מה-API שזה data נקי. מה גם, שזה הרבה יותר נוח לעבודה |
לא בהכרח נכון מה שאתה אומר ^^
|
ציטוט:
לכתוב פשוט "לא נכון" זה לחלוטין ריק מתוכן. אם תסביר את עצמך, אשמח להסביר למה לדעתי אתה טועה או פשוט להסכים איתך. |
אני לא רואה אופציה לשילוב זה עם PHP
לקבל את התוצאות ל PHP |
xml http request עם PHP.
זה לא מבוסס פלטפורמה ספציפית ואפשר לבצע את החיפוש שלהם עם כל שפה צד שרת או לקוח (לגבי בקשות בצד לקוח יש הגבלות כאלה ואחרות) |
ציטוט:
|
ציטוט:
|
ציטוט:
ולא, כשאמרתי xml http request עם PHP התכוונתי בדיוק למה שאמרתי: לבצע פניה לשרתים של גוגל באמצעות קוד PHP ע"י השרת ולא באמצעות קוד JS באמצעותה קליינט ("AJAX" בשפה שלך). בחזרה אתה מקבל מגוגל פלט JSON לשאילתא שלך. למידע נוסף ראה את המידע בקישור הזה ("Flash and other Non-Javascript Environments"): http://code.google.com/intl/iw/apis/...ntation/#fonje |
אל תעלב יגאל, פשוט המושג שציינת קוראים לו ajax. זה שהתכוונת למשהו אחר.. ותסלח לי שלא הבנתי אותך נכון, אבל נראה לי קצת פלצני להגיד אג'קס בשם המקורי שלו, זה כמו שאני אגיד- ברשת הworld wide web בלהבלהבלה.. חחח
בכל אופן, רצוי שבפעם הבאה תשתמש במושג מקובל, ואל תנסה להמציא מושגים D: והכל ברוח ידידותית!, בקו |
ציטוט:
ראשית נתחיל מהעיקר: לא משנה מה הוויכוח, מן הראוי להשתדל ולהתנסח בצורה שלא תפגע באף אחד שלא לצורך. בסופו של דבר כולם פה גולשים על מנת לעודד את העסקים שלהם, לשתף מידע וכו'. אני לא נפגע, באמת שיהיה למישהו קשה לפגוע בי על דפי הפורום פה :) וכעת לנושא "המקצועי": זה לא נכון להגיד שביצוע xml http request בצד שרת = AJAX. זאת, מאחר והמשמעות של AJAX היא Asynchronous JavaScript And XML לכן הדוגמא שלך של world wide web במקום WWW איננה רלוונטית כרגע שכן AJAX != xml http request זאת ועוד, לא ניסיתי להמציא שום מושג חדש חלילה. את זה אני משאיר לאנשים שמעדיפים לדבר במקום לעשות :) xml http request זה כשמה כן הוא: ביצוע פניה לשרת מרוחק באמצעות פרוקוטול http (ביצוע POST או GET). היא לא מדברת על מי מבצע את הפניה: השרת או הקליינט. מימשתי מספר פעמים חיפוש ב-APIs שונים של גוגל הן בצד לקוח ע"י ה-API שלהם (או ביצוע פניה לשרת בצורה "ידנית" ע"י AJAX) והן בצד שרת עם קוד ASP שפונה לגוגל ומחפש בו נתונים כאלה ואחרים. |
XML HTTP REQUEST זה לא כשאתה מבקש דף ומקבל תוצאה של XML , הדבר שנשמע לי הכי קרוב למה שאמרת זה לעשות פוסט של XML לדף מסויים מעבר לזה לא מכיר את המושג וזה גם לא ממש משנה
לפותח האשכול, אל תתאמץ להתחבר ל API בדיקת מיקום במנועי חיפוש באתר googletools כבר למעלה משנתיים ניגש בכל בדיקה ל 10 עמודים של גוגל (כי תצוגה של 10 תוצאות ו 100 תוצאות שונה - יש שינוי במיקומים) ולא הייתה בעיה איתו אפילו פעם אחת ואין שם שום טריקים מיוחדים.... אז תרגיש חופשי לגשת לדף ה HTML ולהשיג את מה שאתה צריך. תהנה |
טוב שמע, חבל על הוויכוח. ביצוע פניה וקבל XML לא נקראת בשם שכתבת.
חבל פה על הוויכוח, המושג שציינת מתייחס באופן ישיר לאג'קס. *לא מאמין לי? חפש בגוגל. ואין שום דבר רע בללמוד. להפך! כל יום לומדים משהו חדש =] |
ציטוט:
אבל שוב, המושג הזה היה קיים הרבה לפני שהטמיעו את המושג "AJAX" ומתייחס לביצוע בקשות בין בין קליינט לשרת ו/או בין שרת אחד לאחר. |
ציטוט:
" כאשר אתה מבקש מהם עמוד HTML זה "עולה" הרבה יותר (תעבורה, זמן עיבוד לשרתים וכו') מאשר לקבל פלאט מה-API שזה data נקי." זאת לא בהכרח הסיבה שגוגל מעדיפים שתשתמש ב API פשוט הם רוצים לסווג את המשתמשים לקטגוריות.. ובתור מפתח ברגע שאתה משתמש ב API אתה מוגדר בטטסטיקות ובכל נתון שהם אוספים עליך בתור מפתח.. מבחינת התעבורה - זה ממש לא בהכרח פחות תעבורה ;) |
ציטוט:
בכל אופן, כמו שציינת אכן ישנם שיקולים שונים נוספים של איסוף סטטיסטיקות, תיעדוף הבקשות ועוד. מה גם, שבעתיד הם יכולים לשנות את מבנה העמוד של תוצאות החיפוש ויהיה על המתכנת לכתוב מחדש חלק מהקוד שלו שמוציא את הנתונים שהוא רוצה, בעוד שה-API גם אם יתעדכן ושמור על תמיכה לאחור (בד"כ). בכל אופן, לדעתי בתור מתכנת עדיף להשתמש ב-API שיוצר בדיוק בשבילך |
ווואי אתם רבים פה על שטויות ובקצב !
בקיצור לפותח האשכול... תשתמש בפונקציה שקוראת קוד מקור לתוך משתנה בביטוי רגולארי פשוט אתה שולף את מה שיש בין התגים של התוצאה ואחסן אותו איפה שתרצה. גוגל לא יחסום אותך אם לא תריץ את זה כל דקה. בכל מקרה במידה וכן אתה יכול לעשות ניטור IP ע"י שימוש בפרוקסי יש הרבה אתרים שמציעים את זה. מעל 20 תגובות לדבר פשוט.. תתבגרו. |
ציטוט:
דיון לגיטימי ולא "מריבה". אני מאמין שיש כאן בסופו של דבר הרבה מידע שיכול להועיל לגולשים. תרגע. |
ציטוט:
אם תפתח את הראש ללמידה ותיהיה מוכן לקבל את זה שיש דרכים יותר נכונות ופשוטות לבצע את המשימה רק תתקדם מזה הלאה. קריאה של XML היא הרבה יותר פשוטה ולרוב גם לא משתנה, קריאה של עמוד HTML שמלא ב"זבל" פשוט לא נכונה פה. מה גם שגוגל מייעדים את הAPI שלהם בדיוק למפתחים שכמונו ולא את עמוד החיפוש הרגיל. חבל. |
ציטוט:
נראה לך שיש פה איזה לולאה עם סיבוכיות או איזה תהליך כבד? לא משנה כמה כבד הדף של גוגל ( למרות שזה כלום לא עובר את 100KB ) אף שרת לא יפול ושום דבר לא יקרה, לא פסלתי את הדרך שלך, שימוש ב API לפעמים זה דבר נכון לעשות, אבל אני לא רואה פה צורך בזה, לא מתעסקים פה עם הרבה מידע או לולאות ועל כן אני קובע ש 2 הדרכים נכונות יעילות מהירות וכשרות - הדרך של לאנקלד את הדף תהיה הרבה יותר קלה למתכנתים מתחילים. חוץ מזה שאני יכול להראות לך שהכלי של גוגל למפתחים עבור קריאת PR של אתר התשנה לו הכתובת אחרי זמן מסויים, אז יותר טוב לקרוא מהמקור את המידע, שמחר כתובת ה XML לא תשתנה. וזה ממש לא משאיר מתכנתים "מאחור", אל תתפלצן עלי. |
חי דבר ראשון הכנסת פה מושגים של סיבוכיות מהירות ותחזוק שרתים. זה לא הנושא שדיברתי עליו, מבחינת ביצועים אני מסכים שהביצועים יהיו מאוד דומים.
מצד שני, לעשות file_get_contents ולהריץ ביטוי רגולרי שמישהו יכתוב פה בהמשך זה לא הכי מלמד את המתכנת ולמעשה ביטוי רגולרי על כזה דבר זה גם לא כל כך יעיל. מצד שלישי, לשאוב XML יפה, להשתמש במחלקה כמו SimpleXML בשביל לנווט בה בנוחות ולרוץ על התוצאות בצורה שלשמה זה נבנה זה הרבה הרבה יותר נוח והרבה יותר ניתן לתחזוקה ולשינויים. למה אתה רב על משהו שאתה יודע שהוא נכון? הרי ברור לך שהדרך הנכונה היא להשתמש בAPI של גוגל. אם זו תוכנית של 5 דקות בשביל משחק באמת אין סיבה גם לדעתי להתחיל להשתמש בAPI כיוון שזה דורש כמה הכנות אבל אני יוצא מתוך נקודת הנחה שזה לא המקרה. |
אל תיכנס לעיניין היעילות, כי אני מוכן להוכיח לך שעם האינקלוד של המחלקה לטיפול ב XML וכל התוכנית שאתה מציע ב API תהיה פחות יעליה מתוכנית של איך אמרת, "5 דקות" של אינקלוד דף וחיפוש ערך.
אם הוא היה צריך לקבל כמה מידעים מאותו עמוד ויש מסמך XML שנותן את המידע המדוייק הייתי מסכים איתך בלי בכלל לכתוב תגובה לאשכול, אבל זה לא המקרה. אני נמצא בתחום הזה הרבה מאוד זמן ואתה יודע את זה, לפעמים מה שפשוט ונותן תוצאה ואתה לא מריץ תהליכים לנאס"א עדיף ללכת על הפשוט והקל. תחשוב על הפיתרון שנתת לו, במקום להשתמש בפונקציות בנויות של השפה אתה נותן לו להשתמש במחלקה חיצונית ( שאגב ביסודותיה גם משתמשת בביטויים רגולארים על מנת למצוא את הערך במסמך XML ), זאת אומרת שהוא צריך עכשיו לחפש מחלקה לאנקלד אותה, להקים את החיבור ל API של גוגל ולעשות תהליך שלם. במידה וזה לצורך לימוד בלבד הייתי מציע לו ללכת ל API אבל זה לא נראה לי המקרה. אם זה נראה כמו ברווז זה ברווז, אל תהפוך משהו קל ופשוט לתהליך מסובך ומייגע. |
ואלה חי לא יודע איפה אתה חי אבל אני לא מסכים עם רוב מה שכתבת...
קודם כל, במקום להגיד אינ אוכיח - בוא עם הוכחות שנית, אפשר להשתמש במחסנית כדי לעבור על ה XML - ביטויים רגולרים זאת סתם אופציה שלישית, גוגל נותנים לך מין WEB SERVICE כזה, אתה לא חייב להשתמש ב PHP CLIENT שלהם על מנת לעבוד איתו זאת סתם הנפצה לא רציונאלית.. ודבר אחרון - המשפט האחרןו שלך בדיוק הפוך... אם זה נראה כמו ברווז זה ברווז אם קיים לזה WEB SERVICE - זה WEB SERVICE |
ואאלה אני נכנס פה לוויכוח על ריק, תעשה מה שבראש שלך אני יעשה מה שאני מבין וכל אחד בחלקו, סטו ?
|
מישהו שם פה לב על מה אתם רבים ?
SHAY_FALDOR אתה סותר את עצמך בקצב מסחרר אם זה למטרת לימוד , עדיף את הדרך של ה PREG , כי ככה הוא ילמד קצת regex ולא להפעיל את SIMPLEXML ולגשת ל NODE לגבי היעילות אין קשר , אתה לא יודע מה יש בצד השני ואתה לא יודע איך google מתעדפים את הבקשות שמגיעות אליהם , הרבה פעמים מה ש"נכון" לפי הספרים לא תמיד עובד בשטח לגבי ה API של גוגל , בדקתי אותו דיי מזמן (בערך לפני שנה וחצי - שנתיים) ואם אני זוכר נכון הוא מגביל מספר של שאילתות ל API לעומת זאת בדרך של התחזות למשתמש גוגל לא יכול להגביל אותי (תיאורתית אני יכול לבנות API פנימי , לשים אותם על 1000 שרתים שונים במדינות שונות וכל בקשה לשלוח לשרת אחר) hi_sorie -מסכים עם כל מה שכתבת... |
אני יודע, עזוב, האגו שלהם חותך להם את קו המחשבה.
|
ציטוט:
אם כן, אשמח אם תפרסם פה את האלגוריתם, נראה לי שעלית פה על משהו |קורץ| חחח |
אני ממש לא מסכים אתכם. אבל ממש.
אני לא רואה סיבה ללמוד שיטת עבודה לא נכונה. השיטה המועדפת והמומלצת היא השיטה של ה API באופן חד משמעי. יש סיבה שהמציאו אותו. במידה ותבנה לעצמך API משלך, באיזשהו שלב כמות השאילתות תגרום לך להיחסם. מה גם שהרבה יותר קל ופשוט לשלוף מידע מ API. ולא, ללמוד זה לא רע. ולא לא תמיד חייבים להשתמש במחלקה מוכנה ל APIים.. |
ציטוט:
"אני לא רואה סיבה ללמוד שיטת עבודה לא נכונה." איפה אתה רואה שיטת עבודה לא נכונה? אל תתלהב כי קוראים לזה API וזה נשמע מקצועי, אפשר לסגור את כל התוכנית הזאת ב 3 שורות קוד, שיהיו יותר יעילות ומהירות לכותב מאשר API. הוא כולה שולף דבר אחד מהדף, אין צורך להשתגע. "השיטה המועדפת והמומלצת היא השיטה של ה API באופן חד משמעי. יש סיבה שהמציאו אותו." הסיבה שהם "המציאו" אותו היא שהם לא רוצים רובוטים שיעברו להם על האינדקס, יש להם מפרסמים שמקבלים סטטיסטיקות וכל כניסה של רובוט נחשבת כחשיפה, וזה מוריד להם את היחס בין הקלקה לבין חשיפה ובכך מוריד את איכות הפרסום ויעילותו בעייני המפרסם. "במידה ותבנה לעצמך API משלך, באיזשהו שלב כמות השאילתות תגרום לך להיחסם." שטויות במיץ, אני מריץ שאילתות קבועות על גוגל ב corn job של שאילתא לשעה והכל עובד מצויין, לא חסם אותי, מה גם שאפשר לעשות ניטור IP ע"י שימוש באתרי פרוקסי ולא חסר כאלה. "מה גם שהרבה יותר קל ופשוט לשלוף מידע מ API. ולא, ללמוד זה לא רע. ולא לא תמיד חייבים להשתמש במחלקה מוכנה ל APIים.." תאמין לי שהעדיפות גם מבחינת שימושים וגם מבחינת איכות למידה היא על הדרך של ביטוי ראגולרי, יש בו הרבה יותר שימוש מאשר API. ולבנות מחלקה ?! כרגע הוספת לך עוד 3 שעות עבודה לעבודה של 5 דק. אני מציע לך לקרוא את כל הפוסט הבאתי פה הרבה מאוד נימוקים נכונים ובדוקים. |
ציטוט:
אני דווקא בעדך בגדול - אבל יש להפריד את השימוש ב API של גוגל מהשימוש ב SIMPLE XML או כל PHP CLIENT שעובד עם ה API הזה.. הייתי מציע לעשות דבר כזה: PHP קוד:
"estimatedResultCount": "59986", בהצלחה :) דרך אגב.. לכתוב את זה לקח לי 3 דקות.. |
אני חושב שלא צריך לסבך כלא צריך.
יש דרך מסודרת לבצע דברים, והיא בד"כ משתלמת. והנה ניצן הוכיח עד כמה היא פשוטה גם. |
כל הזמנים הם GMT +2. הזמן כעת הוא 23:50. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ