سؤال

كنت أحاول تمرير تسجيل الدخول وكلمة المرور الخاصة بي من بيثون نص إلى eBay صفحة تسجيل الدخول. في وقت لاحق أريد أن يتم تشغيل هذا البرنامج النصي من "محرك تطبيقات جوجل"

اقترحت استخدام "ميكانيكي"لسوء الحظ ، لم ينجح الأمر بالنسبة لي:


IDLE 1.2.4      
>>> import re
>>> import mechanize
>>> br = mechanize.Browser()
>>> br.open("https://signin.ebay.com")

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    br.open("https://signin.ebay.com")
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 255, in _mech_open
    raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
>>> 

في وقت سابق كنت أحاول استخدامه بيثون و نسيج قطني طويل - لم ينجح حتى حتى اقترح أحد المؤيدين أن أقوم بتنزيل أحدث إصدار من ميكانيكي ثم قم بتنفيذ الخطوات التالية:

  1. حدد موقع المجلد التالي على جهاز الكمبيوتر الخاص بي: "C: Python25 lib site-packages twill other_packages _mechanize_dist"

  2. تغيير اسمها إلى "_mechanize_dist_backup"(المسار الكامل ، وبالتالي ، يجب أن يكون"C: python25 lib site-packages twill other_packages _mechanize_dist_backup")

  3. انسخ ال "ميكانيكي"المجلد (الذي يقع في"ميكانيكي -0.2.2" - المجلد الذي قمت بتنزيله وفوقه من الموقع الرسمي "الميكانيكي") ولصقها في "C: Python25 lib site-packages twill other_packages"(المسار الكامل ، وبالتالي ، يجري"C: python25 lib site-packages twill other_packages mechanize")

  4. تغيير اسمها إلى "_mechanize_dist"(المسار الكامل يجري"C: python25 lib site-packages twill other_packages_mechanize_dist")

  5. ينسخ "العميل"ملف من"_mechanize_dist_backup"ولصقها في"_mechanize_dist"(في الواقع ، لقد وجدت هناك ملفان يدعى"العميل": أحدهما ملف بيثون ، وهو ملف آخر هو ملف بيثون مجمع - قمت بنسخ ولصق كلاهما).

بعد أن أجريت كل هذه الخطوات ، حاولت تسجيل الدخول إلى بلدي eBay حساب من نسيج قطني طويل قذيفة في بيثون وعملت !!! يمكنني حتى تسجيل الدخول إلى بلدي ياهو مربع البريد بنفس الطريقة وتحقق من رسالتي!

لكن لدي الآن معضلة: لا أعرف كيف يمكنني نشر السيناريو الخاص بي "محرك تطبيقات جوجل".

ابكر لقد نصحت إذا أردت استخدام مكتبات الطرف الثالث في محرك التطبيق المشاريع ، يجب أن أدرجها ببساطة مع طلبي عند نشره - في حالة مع نسيج قطني طويل, ، على سبيل المثال ، أنا فقط بحاجة لنسخ نسيج قطني طويل المجلد في مجلد طلبي ونشره.

ولكن الآن ليس لدي هذا فقط نسيج قطني طويل المجلد كمكتبة طرف ثالث ليتم تضمينها ، ولكن أيضًا كل هذه التغييرات التي أجريت في "C: Python25" (في "C: Python25 lib site-packages twill other_packages"، أن أكون دقيقًا) في حين أن مجلد التطبيق الخاص بي - الذي يكون لدي فيه نصي ("my_script.py "ملف) - يقع على"ه"القرص.

هل يمكن لأي شخص ، من فضلك ، إعطائي بعض الاقتراحات هنا؟

هل كانت مفيدة؟

المحلول

أما بالنسبة لمشكلة نشر GAE ، فإن Brilliant ، يبدو أن الكود الذي تتعامل معه هو كل شيء Python 2.5 (ستكون مشكلة الحظر الوحيدة حقًا إذا ليس - لا يُسمح بالامتدادات الثنائية ، ولا يوجد رمز يتطلب Python 2.6 أو أفضل مسموح به ، وهذا هو ما هو عليه على GAE في هذا الوقت).

لذلك ، بموجب هذا الافتراض ، فإن المشكلة الوحيدة مع نشر الكود على محرك التطبيق هو وجود كل الكود ، ليس في site-packages (من أي بالطبع GAE'S dev_appserver.py لا تنشر شيئًا مطلقًا ، NADA ، Zilch) ، ولكن في دليل مشروع GAE الخاص بك (أقترح مضغوطًا متكررة لجميع ملفات .py ، فقط - قم بإزالة جميع ملفات .pyc ، على وجه الخصوص ، أمامك zip -r هو - هي؛-).

الكل في الكل ، إنها مجرد مسألة بضع أوامر شل مناسبة: cp -R ومن بعد zip -r (ربما أكثر صعوبة على الأصداف غير اليونيكسي ، ولكن ، حتى على النوافذ لك يستطيع افعل ذلك مع باش من Cygwin ... على أي حال ، إنها بالكاد مشكلة "تطوير" ، في حد ذاتها ؛-).

نصائح أخرى

تشير رسالة الخطأ إلى أن ميكانيكي يطيع ملف Robots.txt الخاص بالموقع.

يجب عليك استخدام API من eBay إذا كنت ترغب في الوصول إلى موقعه بطريقة آلية. إذا لم تقم بذلك ، وقمت ببناء الحل الخاص بك الذي يتجاهل Robots.txt ، فلا تتفاجأ عندما يحظرونك ، وتشكو إلى Google من الاستعلامات الآلية القادمة من محرك التطبيق من تطبيقك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top