أدوات لالتقاط وتحويل الويب
مجتمع GrabzIt على الإنترنت

حدث خطأ عند تشغيل العرض التوضيحي بواسطة python

اطرح أسئلة حول كيفية التقاط أو تحويل صفحات الويب أو HTML into الصور أو ملفات CSV أو PDF أو DOCX وكذلك حول كيفية تحويل مقاطع الفيديو intس المتحركة GIF باستخدام API لدينا.

خطأ:

تتبع (آخر مكالمة أخيرة):

  ملف "GrabzItClient.py"، السطر 6، في

    GrabzIt.SaveTo("المستندات/النتيجة.docx")

  الملف "C:\Program Files\Python36\lib\site-packages\GrabzIt\GrabzItClient.py"، السطر 235، في SaveTo

    معرف = الذات.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

    إرسال ذاتي (رسالة)

  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 964، قيد الإرسال

    الاتصال الذاتي ()

  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 936، في الاتصال

    (self.host،self.port)، self.timeout، self.source_address)

  الملف "C:\Program Files\Python36\lib\socket.py"، السطر 704، في create_connection

    للدقة في getaddrinfo(host, port, 0, SOCK_STREAM):

  الملف "C:\Program Files\Python36\lib\socket.py"، السطر 743، في getaddrinfo

    للدقة في _socket.getaddrinfo(host, port, Family, type, proto, flags):

المقبس.gaierror: فشل الحصول على [Errno 11001] getaddrinfo

 

المصدر: (لقد قمت بتثبيت GrabzIt وحصلت على مفتاح التطبيق وسر التطبيق)

من GrabzIt قم باستيراد GrabzItClient

 

GrabzIt = GrabzItClient.GrabzItClient (مفتاح التطبيق، سر التطبيق)

GrabzIt.HTMLToDOCX("" مرحبا بالعالم! ") 

GrabzIt.SaveTo("المستندات/النتيجة.docx") 

 

هل يمكن أن تخبرني ماذا يجب أن أفعل؟

تم الرد عليه بواسطة مجهول في 21 أغسطس، 2018

مرحبًا بك في المجتمع!

عادة أ المقبس.gaierror: فشل الحصول على [Errno 11001] getaddrinfo يحدث عندما يتم استدعاء التعليمات البرمجية من خلف جدار الحماية أو الوكيل. يرجى التأكد من وصول التطبيق إلى المنفذ 80.

تم الرد عليه بواسطة دعم GrabzIt في 21 أغسطس 2018

شكرا لإجابتك.

نعم، إنها مشكلة الوكيل. إنه يعمل بشكل جيد عندما أقوم بتغيير جهاز الكمبيوتر الآخر الذي لا يحتوي على وكيل.

كيف يمكن أن تعمل مع الوكيل؟

تم الرد عليه بواسطة مجهول في 21 أغسطس، 2018

وستكون هذه ميزة جديدة. نحن نبحث عما إذا كان بإمكاننا تعديل عميل Python لتمكين استخدام الخوادم الوكيلة.

إذا كان ذلك ممكنًا، فسنعود إليك بالإصلاح. يمكنك تجربة ذلك بنفسك إذا أردت نظرًا لأن جميع عملائنا مفتوحو المصدر: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

تم الرد عليه بواسطة دعم GrabzIt في 21 أغسطس 2018

لقد أضفنا الميزة الجديدة. ما عليك سوى تنزيل ملف GrabzItClient.py واستبدال نسختك من هنا: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

يمكنك بعد ذلك تعيين عنوان URL الوكيل للخادم الوكيل الخاص بك باستخدام طريقة SetLocalProxy الجديدة، على سبيل المثال:

GrabzIt.SetLocalProxy("http://123.123.123.123:21231")

من فضلك اسمح لنا الآن كيف ستسير الأمور وسنقوم بإصدار جديد قريبًا!

تم الرد عليه بواسطة دعم GrabzIt في 21 أغسطس 2018

شكرا لإجابتك.

أنا محل GrabzItClient.py وقمت بتغيير المصدر الخاص بي:

 

 

GrabzIt = GrabzItClient.GrabzItClient (مفتاح التطبيق، سر التطبيق)

GrabzIt.SetLocalProxy("http://xxx@jp.xxxxx.com:yyyyyyy@zzz.proxy.zzz.zzzzzzz.com:8080")

GrabzIt.HTMLToDOCX("" مرحبا بالعالم! ") 

GrabzIt.SaveTo("المستندات/النتيجة.docx") 

 

مستخدم:xxx@jp.xxxxxx.com

كلمة السر:yyyyyyy

مخدم بروكسي:zzz.proxy.zzz.zzzzzzzz.com

ميناء:8080

 

رسالة خطأ:

تتبع (آخر مكالمة أخيرة):
  ملف "GrabzIt_test.py"، السطر 54، في
    GrabzIt.SaveTo("result.docx")
  ملف "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py"، السطر 487، في SaveTo
    معرف = الذات.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
    الرؤوس ['تفويض الوكيل'] = 'أساسي' + base64.b64encode(auth)
  الملف "C:\Program Files\Python36\lib\base64.py"، السطر 58، في b64encode
    المشفرة = binascii.b2a_base64(s، السطر الجديد = خطأ)
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"

 

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

آسف، ربما قمت بتعيين الوكيل الخطأ.

لقد قمت بتغيير الوكيل إلى "http://the_other_proxy_server:port" وأصبحت رسالة الخطأ:

تتبع (آخر مكالمة أخيرة):
  ملف "GrabzIt_test.py"، السطر 54، في
    GrabzIt.SaveTo("result.docx")
  ملف "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py"، السطر 487، في SaveTo
    معرف = الذات.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
    إرسال ذاتي (رسالة)
  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 964، قيد الإرسال
    الاتصال الذاتي ()
  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 940، في الاتصال
    self._tunnel()
  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 919، في _tunnel
    رسالة.شريط()))
خطأ OS: فشل اتصال النفق: 407 مطلوب مصادقة الوكيل

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

تحتاج إلى تحديد اسم المستخدم وكلمة المرور الخاصة بك كما يلي: http://username:password@example.com:12335

تم الرد عليه بواسطة دعم GrabzIt في 22 أغسطس 2018

نعم، لقد قمت بتحديد اسم المستخدم وكلمة المرور الخاصة بي (السؤال يوم الأربعاء، 22 أغسطس، 2018 الساعة 09:34:43 صباحًا) مثل:

http://username:password@example.com:12335

اسم المستخدم هو عنوان البريد الإلكتروني (xxx@jp.xxxxx.com) لذلك قمت بالتغيير إلى xxx%40jp.xxxxx.com

لكنها نفس رسالة الخطأ:TypeError: مطلوب كائن يشبه البايت، وليس "str"

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

عذرا فقد فاتني ردك السابق أعتقد أن هذه مشكلة في Python 3 وأصدرت إصلاحًا من شأنه أن يحل الخطأ. يرجى تحديث GrabzItClient.py مرة أخرى من: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

تم الرد عليه بواسطة دعم GrabzIt في 22 أغسطس 2018

لقد استبدلت ملف python ووجدت رسالة خطأ جديدة:

تتبع (آخر مكالمة أخيرة):

  ملف "GrabzIt_test.py"، السطر 54، في

    GrabzIt.SaveTo("result.docx")

  ملف "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py"، السطر 244، في SaveTo

    معرف = الذات.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'] = 'Basic' + encodedAuth

TypeError: يجب أن يكون str وليس بايت

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

حسنًا، لقد قمنا بفك تشفيرها intيا ascii. نحن لا نستخدم Python 3، ولهذا السبب لفت انتباهنا. يرجى تحديث الكود الخاص بك من هنا: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

نظرًا لأن هذا مفتوح المصدر، فلا تتردد في تصحيح الأخطاء وتنفيذ أي تحسينات تريدها على Github. لأننا لا نستطيع الوصول إلى الإعداد الخاص بك.

تم الرد عليه بواسطة دعم GrabzIt في 22 أغسطس 2018

شكرا جزيلا لمساعدتكم.

خطأ OS: فشل اتصال النفق: 407 مطلوب مصادقة الوكيل

سأحاول التصحيح. 

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

نعتقد أننا نعرف ما هي المشكلة، إلا أنها ستتطلب إعادة كتابة بعض التعليمات البرمجية. لذلك سوف نتصل بك عند الانتهاء. نأمل في 24 ساعة.

تم الرد عليه بواسطة دعم GrabzIt في 22 أغسطس 2018

أعتقد أننا قمنا بإصلاح المشكلة! يمكنك الحصول على أحدث إصدار هنا: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

تم الرد عليه بواسطة دعم GrabzIt في 22 أغسطس 2018

شكرا للرد عليها.

رسالة خطأ جديدة:

تتبع (آخر مكالمة أخيرة):
  ملف "GrabzIt_test.py"، السطر 54، في
    GrabzIt.SaveTo("result.docx")
  ملف "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py"، السطر 243، في SaveTo
    معرف = الذات.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
    ح = self._getConnection()
  الملف "C:\TEST\GrabzIt_python\GrabzIt\GrabzItClient.py"، السطر 679، في _getConnection
    h.putheader("تفويض الوكيل"، "أساسي" + encodedAuth)
  الملف "C:\Program Files\Python36\lib\http\client.py"، السطر 1201، في ملف putheader
    رفع CannotSendHeader()
http.client.CannotSendHeader

 

تم الرد عليه بواسطة مجهول بتاريخ 22 أغسطس، 2018

لقد أجرينا بعض التحسينات الطفيفة على: https://github.com/GrabzIt/grabzit/blob/master/python/GrabzIt/GrabzItClient.py

وقمت باختباره في Python 2.7 و3.4 و3.6 وهو يعمل في جميع البيئات، مع وبدون وكلاء ومع وكلاء معتمدين.

إذا كان لا يزال لا يعمل بالنسبة لك، فسوف تحتاج إلى تصحيح التعليمات البرمجية.

تم الرد عليه بواسطة دعم GrabzIt في 23 أغسطس 2018

شكرا لك على الرد.

سوف أقوم بتصحيح المصدر الخاص بي.

بالمناسبة، هل اختبرت اسم المستخدم وهو البريد الإلكتروني مثل xxx@yyy.com؟

تم الرد عليه بواسطة مجهول في 23 أغسطس، 2018

لا، لم أكن أعلم أن ذلك سيحتاج إلى التشفير وفك التشفير بشكل صحيح، لذا ربما تكون هذه هي المشكلة.

تم الرد عليه بواسطة دعم GrabzIt في 23 أغسطس 2018