פורסם 2011 בינואר 2414 שנים היי,רציתי לדעת איך אני יכול להוריד קבצים דרך פייתון?אני יודע שאפשר לעשות את זה באמצעות URLLIB2 כך:response = urllib2.urlopen('http://blabla.com/getfile.aspx?id=1')file = response.read()אבל זה לא מצליח... נראה לי בגלל שהאתר מביא את הקובץ דרך דף ASP ולא ישירות..יכול להיות שזאת הבעיה? מישהו יכול לעזור לי ולהגיד לי איך אני יכול להוריד את הקובץ שבמקרה הזה הוא בID=1???תודה רבה!
פורסם 2011 בינואר 2414 שנים גם אם זה asp לא אמורה להיות בעיה.הבעיה יכולה להיות אם getfile.aspx לא מחזיר את הקובץ ישירות, אלא רק מכיל לינק לקובץ שאמור לרדת אוטומטית איכשהו.מה בדיוק יש ב-file אחרי ההורדה?
פורסם 2011 בינואר 2514 שנים מחבר הFILE הוא קובץ MP3..כשניסיתי לעשות את השיטה שציינתי למעלה זה החזיר לי קובץ MP3 ריק.אם אני רושם בדפדפן את הURL שרשמתי אז הוא כן מתחיל להוריד לי קובץ MP3.מישהו יודע איך אפשר לעשות שזה יעבוד?תודה רבה!
פורסם 2011 בינואר 2514 שנים נסה להשתמש ב-Wireshark כדי לנטר את התעבורה כדי לראות מה קורה בדיוק. תשווה בין מה שקורה כשאתה כותב את ה-URL בדפדפן ובין כשאתה מנסה להוריד בפייתון את הקובץ.
פורסם 2011 בינואר 2514 שנים מחבר בשניהם זה פפונה לאותו URL אבל משום מה רואים בפקטה שדרך פייתון הCONNECTION הוא על CLOSE ודרך האתר הCONNECTION על KEEP-ALIVE.רעיון?
פורסם 2011 בינואר 2514 שנים השאלה היא איזו תשובה מתקבלת מהאתר. ה-close/keep-alive לא אמור לשנות (זה רק קובע אם לנתק את החיבור עם האתר אחרי שהקובץ סיים לרדת או לא).
פורסם 2011 בינואר 2614 שנים מחבר זה מה שאני מקבל בTCP STREAM אחרי שאני מפעיל את הסקריפט:(כמובן שאני זה ששינה את שם האתר לכוכביות...)GET /Students/GetMp3.aspx?id=1 HTTP/1.1Accept-Encoding: identityHost: www.***********.comConnection: closeUser-Agent: Python-urllib/2.7-------------------------------------------------------------------------------HTTP/1.1 200 OKConnection: closeDate: Wed, 26 Jan 2011 18:43:07 GMTServer: Microsoft-IIS/6.0X-Powered-By: ASP.NETX-AspNet-Version: 2.0.50727Cache-Control: privateContent-Length: 0
פורסם 2011 בינואר 2614 שנים מחבר צודק, סליחה:GET /Students/GetMp3.aspx?id=3 HTTP/1.1Host: www.***********.comConnection: keep-aliveAccept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10Accept-Encoding: gzip,deflate,sdchAccept-Language: en-US,en;q=0.8Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3Cookie: __utmz=121087831.1294747141.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=%D7%A7%D7%99%D7%93%D7%95%D7%9D; StudentId=******; AuthKey=************************************************; __utma=121087831.369620101.1294747141.1295804831.1295878968.13HTTP/1.1 200 OKDate: Wed, 26 Jan 2011 19:49:16 GMTServer: Microsoft-IIS/6.0X-Powered-By: ASP.NETX-AspNet-Version: 2.0.50727Content-Disposition: attachment; filename=alef3.mp3Cache-Control: privateContent-Type: text/htmlContent-Length: 1841600.........,.......G9@......9L\.(?..&#.t+.^.\$b..O..Q......@3....@....."..X..-..r.8...pZ......h..18"..O.....(Q.....@..O...x,..(...b...@?.... ....<#.1.q..TA?...zD.|..x.8...|G....-..>...........j.@1@..@...-.`.......... .....Y.EX..].H r............X.....2BjabyH.mu.^.V.^3j.e.G...p........\..V...e.....[./.T.p]..k......t.X..a.e.....n#....|..[.a.t..=m.X...../....wX..^...6..-...ko-Y.?.uq..r^.H..5.F.......:......../>"C....i............3;....................`......I..@...!..a..9.[).W..............Ey..1.!Q.a...eHP`..g.f..t.a.Jb.*...9...2A.....d..x......A... Q...Z.....z..#...'..p.. ....cQ....$8.A.h..........A...c.A...^P......j.8.%..`....(....i.\\hP..A...-.A.l. e$.jbc```...E..h....... .+v.)....2..p@......b..@.e$f2"..".@........#p.1...וממשיך עם חרעפש כזה בגלל שזה MP3....
פורסם 2011 בינואר 2614 שנים תנסה לשנות את הCONTENTTYPE:http://en.wikipedia.org/wiki/Internet_media_type
פורסם 2011 בינואר 2714 שנים השרת הזה שלך? אתה יכול להוריד את הקובץ דרך הדפדפן?אם השרת לא שלך ואתה מסוגל להוריד אותו מהדפדפן, יש מצב שהטעתי אותך ואין קשר לcontent type.
פורסם 2011 בינואר 2814 שנים יש מצב שהשרת מנסה לחסום גישה לבוטים (סקריפטים) ע"י בדיקה שה user agnet הוא של דפדפן מוכר.נסה לשנות את הuser agent:http://docs.python.org/library/urllib2.html#urllib2.Request
פורסם 2011 בינואר 3014 שנים מחבר אני חושב שזאת באמת הבעייה(הקטע עם היוזר אייג'נט..)תסלחו לי על הבורות, אני עדיין מתחיל.כתבתי את זה:import urllib2mp3file = urllib2.urlopen("http://www.kidum.com/Students/GetMp3.aspx?id=1"[,'User-Agent':'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11'])output = open('test.mp3','wb')output.write(mp3file.read())output.close()וזה עדיין לא עובד לי..(SYNTAX ERROR)אני צריך לכתוב CLASS ולקשר אותו לסקריפט הזה? איך אני עושה שזה יעבוד?תודה רבה!
פורסם 2011 בפברואר 114 שנים syntax error אומר שבכלל קוד הפייתון שכתבת לא תקין (כנראה חסרים לך סוגריים או מרכאות, או פסיק לא במקום).חוץ מזה, לא הבנתי מה בדיוק ניסית לעשות. urlopen לא מאפשרת לך להגדיר headers (הפרמטר השני הוא ה-http post data, שזה התוכן של הבקשה בבקשות POST). בשביל להגדיר headers אתה צריך להשתמש ב-urllib2.Request או urllib2.build_opener.כאן תוכל למצוא דוגמאות:http://docs.python.org/library/urllib2.html#examples
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.