שאלה מוזרה.... אולי.

patael

New member
שאלה מוזרה.... אולי.

היי לכולם אני צריך משהו כמו 100,000 JPEG בגודל 20X20. אל תשאלו למה, סיפור ארוך.... בניתי קוד שמקבל URL ויוצר מחדש את כל תמונות ה JPG שבאותה תיקייה ואילו שמתחתיה בגודל 20*20. וכמובן עושה RENAME בצורה מסודרת. הבעייה שלי היא להשיג את התמונות, ניסיתי לתת ל READDIR שלי נתיב כמו www.tapuz.co.il/images נניח שקיים דבר כזה, אבל אני מקבל שגיאה שהנתיב לא קיים למרות שהוא קיים (כזה שיצרתי בעצמי על ה WEB לצורך הבדיקה). ניסיתי לפתוח את תיקיות הWEB בעזרת FOPEN ועוד כל מיני דרכים, זה לא הלך. לסיכום הקוד עצמו קיים, אבל אני לא מצליח לסרוק אתרים אחרים כדי לאתר JPGS לא משנה מה יש בתוכם. אם תרצו, אז אי מחפש משהו בסגנון GOOGLE לעניים (כי לא איכפת לי לקבל JUNK).... תודה רבה אבי
 

אמיר ט

New member
זה קצת בעייתי

כי רוב הספקים \ אתרים היום לא מאפשרים לראות את תוכן התיקיה כמו שאתה רוצה... מספיק שמישהו שם קובץ index.html בספריה ואתה כבר לא יכול לראות את התוכן שלה.
 

patael

New member
אין פתרון אחר???

ראשית תודה. כלומר איך מנועי החיפוש האחרים עובדים, אני לא מתיימר להיות GOOGLE, אבל אני חייב להשיג המון, המון JPEGS. אולי רעיון אחר? תודה רבה, אבי
 

אמיר ט

New member
--->

לא התעמקתי איך בדיוק עובדים מנועי חיפוש כאלה, אבל יש שיטה שאולי תעזור לך, תבנה פונקציה שנכנסת לדף X, ושולפת ממנו את כל הלינקים והתמונות, את התמונות היא מאכסנת ואז היא נכנסת ללינקים אחד אחד ע"י קריאה לאותו פונקציה והגדרת X בערך הלינק הנוכחי. מה שאתה עושה כאן זאת רקורסיה, אני מאמין שיש דרכים יותר אלגנטיות ויותר מתחכמות אבל זה מה שעולה לי לראש על רגל אחת. כדי לסבך קצת פחות את העניין אתה יכול להגביל את מספר הלינקים בעמוד שתבדוק, ודברים דומים, אולי קצת שיטות לצימצום לינקים שאתה יודע שלא יהיו רלוונטים... בהצלחה
 

patael

New member
אתה מתכוון להיכנס ל....

SOURCE עצמו, לחפש בקובץ לינקים ותגיות IMG, אז לפנות אליהם ולשמור אותם אצלי? תודה
 

אמיר ט

New member
בדיוק

אתה לוקח את הSOURCE של הקובץ ומחפש בו תגיות A ו IMG תצטרך להתשמש ב regular expressions
 

behemot

New member
למה שלא תבנה CRAWLER שירוץ על

דפי תוצאות החיפוש תמונות של GOOGLE עצמו?
 

behemot

New member
במקום לעשות CRAWL על אתרים תעשה

אותו על חיפושים שאתה מריץ על GOOGLE לתמונות
 

orenphp

New member
אז ככה....

אני יכול להביא לך איזו מחלקה שבניתי פעם בשביל לנתח תוצאות של עמודים. מה שאתה צריך לעשות הוא די פשוט: תבנה מערך של מילים שאתה רוצה לחפש בגוגל-תמונות, תעבור על המילים בלולאה ופשוט תקבל את הsource של העמוד: http://images.google.co.il/images?q=$wordsList[$i]&ie=UTF-8&oe=UTF-8&hl=iw אחרי זה תנתח אותו כמו שאתה רוצה (כלומר קח את התמונה) ושמור אותו אצלך (כאן תוכל להעזר במחלקה שבניתי). זה בפשטות זה של קרולר... לצערי אני בעומס אדיר של דברים, אני אוכל לשלוח לך את המחלקה עם איזה דוגמא, אבל אתה תאלץ להסתדר קצת בעצמך. וחשוב מאוד - תלמד regualr exp. - זה קריטי מאוד למציאת patterns בתוצאות ושליפה רצוייה שלהם עם המחלקה שלי. * את הלינק לregualr exp קח מההודעה של אמיר. תיהיה איתי בקשר בפרטי ואני אשלח לך את המחלקה.
 

patael

New member
תודה רבה אורן...

כמו תלמיד טוב, את המחלקה אבנה בעצמי, תודה רבה לך בכל אופן.
 

patael

New member
show_source

ניסיתי לבצע על עמודים מרוחקים כגון: www.tapuz.co.il/images.html וזה לא עובד, אבל מקומי זה כן עובד, כלומר,אם אנסה לראות את המקור של עמוד images.html זה עובד מצויין. שאלתי ב PHPBUILDER ושם נאמר לי שאין אפשרות לקבל SOURCE של קובץ מרוחק. אז איך בצורה אחרת אני אוכל לקבל את ה SOURCE של GOOGLE לטובת ניתוח התוצאה ולקיחת התמונות? תודה רבה, אבי
 

behemot

New member
אתה צריך רק את הHTML שלו - אתה יכול

לעשות את זה ככה
$file = @fopen ($theLocation, "r"); while(!feof($file)) { $line = fgets ($file, 21024); //do what ever u want with the line - use regexp of course } fclose($file);​
 

orenphp

New member
נכון חלקית....

אתה צריך לבדוק את הregex על כל הHTML של העמוד הרצוי ולא על כל שורה בנפרד (מה קורה אם תמונה תיהיה בשתי שורות נפרדות?).
 

patael

New member
הצלחתי לבודד את כל התמונות מגוגל...

ללא בעיה, וכמובן בדקתי את עצמי. הבעיה היא שגוגל לא נותן אפשרות לעתיק תמונות באופן אוטומטי. בהתחלה ניסיתי להריץ את התוכנית שלי על הPATH הרגיל של גוגל http://images.google.co.il/images?q=man&ie=UTF-8&oe=UTF-8&hl=iw הבעיה שנוצרה לי היא שקומפיילר לא מוצא קובץ ספציפי, מובן למה. עברתי לעבוד עם YAHOO באותו קוד בדיוק וסוג ה PATH זהה, הקוד רץ מצויין. זה ה PATH: http://images.search.yahoo.com/search/images?p=man&ei=UTF-8 נניח שיש ב GOOGLE הגנה מסויימת. והבעיה הראשית היא שהתמונות ב YAHOO לקוחות מ GOOGLE ולמעשה, אין אפשרות להתיק את התמוות מGOOGLE השגיאה שאני מקבל היא: NO ERROR FOUND או משהו בסגנון. מה שאני מנסה לעשות זה לשמור את התמונות לרגע כ TEMPLATE ואח"כ ליצור IMAGECREATEFROM וכו'. הנה בסיס הקוד שאני משתמש בו
function LoadJPEG ($imgURL) { $fp = fopen($imgURL, "r"); $imageFile = fread ($fp, 3000000); fclose($fp); $tmpfname = tempnam ("/temp", "IMG"); $fp = fopen($tmpfname, "w"); fwrite($fp, $imageFile); fclose($fp); $im = imagecreatefromjpeg ($tmpfname); unlink($tmpfname); if (!$im) { print "Could not create JPEG image $imgURL"; } return $im; }​
אם אריץ למשל את הקוד על TAPUZ הוא יעבוד ללא בעיה. מקווה שתוכלו לעזור. תודה, אבי.
 
למעלה