שאל שאלות כיצד ללכוד או להמיר דפי אינטרנט או HTML into תמונות, מסמכי CSV, PDF או DOCX וכן כיצד להמיר סרטונים into GIF מונפשות באמצעות ה- API שלנו.
שְׁגִיאָה:
Traceback (השיחה האחרונה אחרונה):
קובץ "GrabzItClient.py", שורה 6, ב
GrabzIt.SaveTo("documents/result.docx")
קובץ "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", שורה 235, ב- SaveTo
id = עצמי.Save()
קובץ "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", שורה 209, ב- Save
obj = self._take(sig, callBackURL)
קובץ "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", שורה 223, ב-_take
החזר self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
קובץ "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py", שורה 629, ב-HTTPPost
h.endheaders()
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 1234, בכותרות קצה
self._send_output(message_body, encode_chunked=encode_chunked)
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 1026, ב-_send_output
self.send(msg)
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 964, ב- send
self.connect()
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 936, ב-connect
(self.host,self.port), self.timeout, self.source_address)
קובץ "C:\Program Files\Python36\lib\socket.py", שורה 704, ב-create_connection
עבור res ב-getaddriinfo(מארח, יציאה, 0, SOCK_STREAM):
קובץ "C:\Program Files\Python36\lib\socket.py", שורה 743, ב-getaddriinfo
עבור res ב-_socket.getaddrinfo(מארח, יציאה, משפחה, סוג, פרוטו, דגלים):
socket.gaierror: [שגיאה 11001] getaddriinfo נכשל
מקור: (התקנתי GrabzIt וקיבלתי מפתח אפליקציה וסוד אפליקציה)
מ-GrabzIt ייבוא GrabzItClient
grabzIt = GrabzItClient.GrabzItClient(APPLICATION KEY, APPLICATION SECRET)
GrabzIt.HTMLToDOCX(" שלום עולם! ")
GrabzIt.SaveTo("documents/result.docx")
אתה יכול להגיד לי מה עלי לעשות?
ברוכים הבאים לקהילה!
בדרך כלל א socket.gaierror: [שגיאה 11001] getaddriinfo נכשל נגרמת כאשר הקוד נקרא מאחורי חומת אש או פרוקסי. אנא ודא שלאפליקציה יש גישה ליציאה 80.
תודה לך על התשובה.
כן, זו הבעיה של פרוקסי. זה פועל בסדר כשאני משנה את המחשב השני שאין לו פרוקסי.
איך זה יכול לעבוד עם פרוקסי?
זו תהיה תכונה חדשה. אנו מחפשים אם נוכל לשנות את לקוח Python כך שיאפשר שימוש בשרתי פרוקסי.
אם זה אפשרי נחזור אליך עם תיקון. אתה יכול לנסות בעצמך אם תרצה שכן כל הלקוחות שלנו הם קוד פתוח: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
הוספנו את התכונה החדשה. פשוט הורד את הקובץ GrabzItClient.py והחלף את העותק שלך מכאן: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
לאחר מכן תוכל להגדיר את כתובת ה-proxy של שרת ה-proxy שלך באמצעות שיטת SetLocalProxy החדשה, לדוגמה:
grabzIt.SetLocalProxy("http://123.123.123.123:21231")
בבקשה תן לנו עכשיו איך זה הולך ונעשה מהדורה חדשה בקרוב!
תודה לך על התשובה.
החלפתי את GrabzItClient.py ושיניתי את המקור שלי:
grabzIt = GrabzItClient.GrabzItClient(APPLICATION KEY, APPLICATION SECRET)
grabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")
GrabzIt.HTMLToDOCX(" שלום עולם! ")
GrabzIt.SaveTo("documents/result.docx")
מִשׁתַמֵשׁ:xxx@jp.xxxxx.com
סיסמא:יאייייייייי
שרת פרוקסי:zzz.proxy.zzz.zzzzzzz.com
נָמָל:8080
הודעת שגיאה:
Traceback (השיחה האחרונה אחרונה):
קובץ "GrabzIt_test.py", שורה 54, ב
GrabzIt.SaveTo("result.docx")
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 487, ב- SaveTo
id = עצמי.Save()
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 435, ב- Save
obj = self._take(sig, callBackURL)
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 463, ב-_take
החזר self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 1307, ב-HTTPPost
headers['Proxy-Authorization'] = 'Basic ' + base64.b64encode(auth)
קובץ "C:\Program Files\Python36\lib\base64.py", שורה 58, ב-b64encode
מקודד = binascii.b2a_base64(s, newline=False)
TypeError: נדרש אובייקט דמוי בתים, לא 'str'
אותה הודעת שגיאה אפילו אני שיניתי SetLocalProxy מ "http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080" ל "http://xxx%40jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080"
סליחה, יכול להיות שהגדרתי את פרוקסי הלא נכון.
שיניתי את ה-proxy ל-"http://the_other_proxy_server:port" והודעת השגיאה הפכה:
Traceback (השיחה האחרונה אחרונה):
קובץ "GrabzIt_test.py", שורה 54, ב
GrabzIt.SaveTo("result.docx")
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 487, ב- SaveTo
id = עצמי.Save()
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 435, ב- Save
obj = self._take(sig, callBackURL)
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 463, ב-_take
החזר self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 1327, ב-HTTPPost
h.endheaders()
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 1234, בכותרות קצה
self._send_output(message_body, encode_chunked=encode_chunked)
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 1026, ב-_send_output
self.send(msg)
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 964, ב- send
self.connect()
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 940, ב-connect
self._tunnel()
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 919, ב-_tunnel
message.strip()))
OSError: חיבור המנהרה נכשל: 407 אימות פרוקסי נדרש
עליך לציין את שם המשתמש והסיסמה שלך כך: http://username:password@example.com:12335
כן, ציינתי את שם המשתמש והסיסמה שלי (שאלה ביום רביעי, 22 באוגוסט, 2018 09:34:43) כמו:
http://username:password@example.com:12335
שם המשתמש הוא כתובת אימייל (xxx@jp.xxxxx.com) אז שיניתי ל-xxx%40jp.xxxxx.com
אבל זו אותה הודעת שגיאה:TypeError: נדרש אובייקט דמוי בתים, לא 'str'
סליחה, פספסתי את התגובה הקודמת שלך. אני חושב שזו בעיה של Python 3 ושחררתי תיקון שאמור לפתור את השגיאה. בבקשה האם תוכל לעדכן שוב את GrabzItClient.py מ: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
החלפתי קובץ python ומצאתי הודעת שגיאה חדשה:
Traceback (השיחה האחרונה אחרונה):
קובץ "GrabzIt_test.py", שורה 54, ב
GrabzIt.SaveTo("result.docx")
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 244, ב- SaveTo
id = עצמי.Save()
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 218, ב- Save
obj = self._take(sig, callBackURL)
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 232, ב-_take
החזר self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 661, ב-HTTPPost
headers['Proxy-Authorization'] = 'בסיסי ' + encodedAuth
TypeError: חייב להיות str, לא בתים
אוקיי, פיענחנו את זה into ascii. אנחנו לא משתמשים ב-Python 3, וזו הסיבה שזה תפס אותנו. אנא עדכן את הקוד שלך מכאן: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
מכיוון שזהו קוד פתוח, אל תהסס לנפות באגים ולבצע כל שיפורים שתרצה ב-Github. מכיוון שאין לנו גישה להגדרות שלך.
רב תודות על עזרתך.
OSError: חיבור המנהרה נכשל: 407 אימות פרוקסי נדרש
אני אנסה לבצע ניפוי באגים.
אנו חושבים שאנו יודעים מה הבעיה, אולם הדבר ידרוש כתיבה מחדש של חלק מהקוד. אז ניצור איתך קשר בסיום. בתקווה בעוד 24 שעות.
אני מאמין שפתרנו את הבעיה! אתה יכול לקבל את הגרסה העדכנית ביותר כאן: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
תודה על התשובה.
הודעת שגיאה חדשה:
Traceback (השיחה האחרונה אחרונה):
קובץ "GrabzIt_test.py", שורה 54, ב
GrabzIt.SaveTo("result.docx")
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 243, ב- SaveTo
id = עצמי.Save()
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 217, ב- Save
obj = self._take(sig, callBackURL)
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 231, ב-_take
החזר self.HTTPPost(self.request.url, self.request.options._getParameters(self.applicationKey, sig, callBackURL, 'html', quote(self.request.data)))
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 629, ב-HTTPPost
h = self._getConnection()
קובץ "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py", שורה 679, ב-_getConnection
h.putheader('proxy-authorization', 'Basic ' + encodedAuth)
קובץ "C:\Program Files\Python36\lib\http\client.py", שורה 1201, ב-putheader
להעלות את CannotSendHeader()
http.client.CannotSendHeader
ביצענו כמה שיפורים קלים ב: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py
ובדקתי את זה ב-Python 2.7, 3.4 ו-3.6 וזה עובד בכל הסביבה, עם ובלי פרוקסי ועם פרוקסי מורשים.
אם זה עדיין לא עובד בשבילך, תצטרך לנפות באגים בקוד.
תודה על תשובתך.
אני אתקן באגים במקור שלי.
אגב, בדקת את שם המשתמש שהוא אימייל כמו xxx@yyy.com ?