אשמח לעזרה בקוד פייתון
-
למה זה מוציא לי שגיאה?
מה שאני מנסה לעשות זה להוריד באופן אוטומטי את כל הגיליונות שיצאו עד כה מהאתר digital whisper (זה חלק מתרגיל שאני אמור לפתור)
אשמח לעזרהfor doc_number in range(1, 143): for hexnum in [0, 1, 2, 3, 4, 5, 6, 7, 8]: for hexnum2 in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, "A", "B", "C", "D", "E", "F"]: hex_number = f"{hexnum}{hexnum2}" url = requests.get(f"http://digitalwhisper.co.il/files/Zines/0x{hex_number}/DigitalWhisper{doc_number}.pdf") doc_net = BeautifulSoup(url.text) with open(fr"C:\Users\h\Desktop\issues\{doc_number}", "w") as file_net: file_net.write(f"{doc_net}")
-
יראתי בפצותי שיח...
האם תיפגע אם במקום לענות לך תשובה על השאלה אני מבקר את השאלה?
מקווה שלא...א. תמונה של טקסט במקום הטקסט עצמו מקשה על העונים, תמיד תעתיק את הטקסט במקום להביא תמונה של הטקסט, אם התמונה אמור לעזור אז אפשר להביא אותו בנוסף
ב. אתה מבקש ממנו לעשות בשבילך את כל העבודה השחורה, זה לא הוגן
אתה אמור לעשות את החלק המקדים ולהביא שאלה מסודרת
זה אומר, לבודד את הבעיה, כלומר, אל תביא את כל הקוד, זה מחייב אותנו לעבור על הכל כדי לנסות להבין איזה חלק גורם לבעיה, יש הרבה קוד שלא קשור כלל
שאלה טובה מבודדת את הבעיה ומביאה רק את החלק שקשורה לשאלה
ג. האם אתה לא חושב שחיפוש גוגל היה מביא לך את התשובה?
נראה לי שאם היית מבודד באמת את השאלה, זה היה גם מבהיר לך מה אתה שואל, והיית מצליח לחפש תשובה.
ברור שאם תשאל את גוגל על הורדת גליונות digital whisper לא תקבל תשובה קשורה,
אבל אם מורידים את כל מה שלא קשור, תבין שזה שבמקרה מדובר בגליונות מגזין לא קשור כלל לנושא, והדבר היחיד שבאמת קשור זה המידע הבא:
קריאה ל-requests.get נכשלת בגלל: OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissionsאגב, אם המספר הכי גבוה בצופן הוא 128 למה אתה חושב שזה קשור לגליונות דיג׳יטל וויספר?
אגב2, למרות שזה לא קשור לשגיאה שלך לכאורה, אבל הקוד ממש לא נראה תקין כלל. האם באמת התכוונת לעשות לולאה שרצה 143 * 9 * 16 פעמים??
-
@yossiz כתב באשמח לעזרה בקוד פייתון:
האם תיפגע אם במקום לענות לך תשובה על השאלה אני מבקר את השאלה?
קודם כל לא! כי אני יודע שאני לא מתכנת אלא רק לומד כמה נושאים בפייתון שישמשו אותי לסייבר
ב. אתה מבקש ממנו לעשות בשבילך את כל העבודה השחורה, זה לא הוגן
אני מצטער אבל אני לא מספיק יודע כדי לבודד את הבעיה (או שלמה אתה מתכוון?)
OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
שזה אומר?
אגב, אם המספר הכי גבוה בצופן הוא 128 למה אתה חושב שזה קשור לגליונות דיג׳יטל וויספר?
לא הבנתי מה כוותך
@yossiz כתב באשמח לעזרה בקוד פייתון:
האם באמת התכוונת לעשות לולאה שרצה 143 * 9 * 16 פעמים??
יש סיכוי שטעיתי ובגדול. פשוט הייתי נואש למצוא את הפתרון אז פשוט ניסיתי...
כעת אני שם לב שאכן טעיתי, מצטער
בכל אופן תודה -
@Android קודם כל, כל הכבוד על היחס החיובי שלך לביקורת
אני חשבתי לתומי שמי שכותב פייתון אפילו אם זה רק לצורך צדדי, אמור להבין את הקוד שהוא כותב לפחות ברמה מספיקה כדי להבין איזה שורה זורקת את השגיאה, ואיזה מידע מאה אחוז לא קשור לשאלה
בכל מקרה, אם אני לא טועה, נראה די ברור שהשורה שזורקת את השגיאה זו הקריאה ל-
requests.get
וגם נראה די ברור שכל השאר לא אמור להיות רלוונטי לשאלה, לפחות במושכל ראשון (מתכנת תמיד צריך להיות מוכן להפתעות)@Android כתב באשמח לעזרה בקוד פייתון:
שזה אומר?
גם אני לא יודע לענות בדיוק...
@Android כתב באשמח לעזרה בקוד פייתון:
לא הבנתי מה כוותך
עשיתי ניחוש כלשהו וכנראה טעיתי... חשבתי שאתה מנסה לפתור את זה (ועיי״ש בהערות)
@Android כתב באשמח לעזרה בקוד פייתון:
מצטער
אין מה להתנצל לי, זה לא כאב לי כל כך כמו שאולי נשמע מהביקורת שלי...
לשם ההגינות, אני חייב לציין שעשיתי גיגול בסיסי לנסות למצוא מה יכול לגרום לבעיה שלך, ובינתיים לא מצאתי משהו מועיל חוץ ממקרה ששם זה היה חסימה של חומת האש של ווינדוס
-
@yossiz גם זה נכון, לא יודע בשביל מה עשיתי את זה
משום מה גם זה לא עובדurl = requests.get(f"http://digitalwhisper.co.il/files/Zines/0x08/DigitalWhisper8.pdf") with open(fr"C:\Users\h\Desktop\issues\8", "w") as file_net: file_net.write(f"{url.text}")
-
@Android כתב באשמח לעזרה בקוד פייתון:
@yossiz
ניסיתי את זה וזה זורק את אותן השגיאותurl = requests.get(f"http://digitalwhisper.co.il/files/Zines/0x08/DigitalWhisper8.pdf") with open(fr"C:\Users\h\Desktop\issues\8", "wb") as file_net: file_net.write(url.content)
שהן? עברתי על השרשור ולא ראיתי שהבאת בצורה ברורה קוד + פלט שגיאה, רק ציטוטים של @yossiz על הגרסה הראשונית של הקוד
כיוון שאינני יודע מה השגיאה, אני יכול לומר רק שהקוד הזה עובד ומוריד את קובץ הPDF לשולחן העבודה:import requests url = requests.get(f"http://digitalwhisper.co.il/files/Zines/0x08/DigitalWhisper8.pdf") with open(fr"C:\Users\shlomo\Desktop\DigitalWhisper8.pdf", "wb") as file_net: file_net.write(url.content)
עריכה: נראה שהעברת ל
open
נתיב לתקיה ולא נתיב מלא (תקיה + שם קובץ), ואם כן אני מנחש שקיבלת שגיאתIsADirectoryError: [Errno 21] Is a directory
. אני צודק? -
@צדיק-תמים כתב באשמח לעזרה בקוד פייתון:
import requests
url = requests.get(f"http://digitalwhisper.co.il/files/Zines/0x08/DigitalWhisper8.pdf")
with open(fr"C:\Users\shlomo\Desktop\DigitalWhisper8.pdf", "wb") as file_net: file_net.write(url.content)עכשיו ניסיתי את זה וזה לא עובד לי, מוזר
אלה השגיאות:
Traceback (most recent call last): File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen httplib_response = self._make_request( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 386, in _make_request self._validate_conn(conn) File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 1040, in _validate_conn conn.connect() File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\connection.py", line 414, in connect self.sock = ssl_wrap_socket( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\util\ssl_.py", line 449, in ssl_wrap_socket ssl_sock = _ssl_wrap_socket_impl( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\util\ssl_.py", line 493, in _ssl_wrap_socket_impl return ssl_context.wrap_socket(sock, server_hostname=server_hostname) File "C:\Users\h\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 512, in wrap_socket return self.sslsocket_class._create( File "C:\Users\h\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 1070, in _create self.do_handshake() File "C:\Users\h\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 1341, in do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\adapters.py", line 440, in send resp = conn.urlopen( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\connectionpool.py", line 785, in urlopen retries = retries.increment( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\urllib3\util\retry.py", line 592, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.digitalwhisper.co.il', port=443): Max retries exceeded with url: /files/Zines/0x08/DigitalWhisper8.pdf (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)'))) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\h\desktop\python\pythonProject\BeautifulSoup4.py", line 10, in <module> url = requests.get("http://digitalwhisper.co.il/files/Zines/0x08/DigitalWhisper8.pdf") File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\api.py", line 75, in get return request('get', url, params=params, **kwargs) File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\sessions.py", line 529, in request resp = self.send(prep, **send_kwargs) File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\sessions.py", line 667, in send history = [resp for resp in gen] File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\sessions.py", line 667, in <listcomp> history = [resp for resp in gen] File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\sessions.py", line 237, in resolve_redirects resp = self.send( File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\sessions.py", line 645, in send r = adapter.send(request, **kwargs) File "C:\Users\h\Desktop\Python\pythonProject\venv\lib\site-packages\requests\adapters.py", line 517, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='www.digitalwhisper.co.il', port=443): Max retries exceeded with url: /files/Zines/0x08/DigitalWhisper8.pdf (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)')))