كيفية استرداد صفحات سجل التحرير برمجياً من MusicBrainz باستخدام python؟

StackOverflow https://stackoverflow.com//questions/9645426

  •  10-12-2019
  •  | 
  •  

سؤال

أحاول استرداد صفحات سجل التحرير برمجيًا من موقع MusicBrainz.(musicbrainzngs هي مكتبة لخدمة ويب MB، ولا يمكن الوصول إلى محفوظات التحرير من خدمة الويب).لهذا، أحتاج إلى تسجيل الدخول إلى موقع MB باستخدام اسم المستخدم وكلمة المرور الخاصة بي.

لقد حاولت استخدام mechanize الوحدة، وباستخدام النموذج الثاني لصفحة تسجيل الدخول (النموذج الأول هو نموذج البحث)، أقوم بإرسال اسم المستخدم وكلمة المرور الخاصين بي؛من الرد يبدو أنني قمت بالدخول إلى الموقع بنجاح؛ومع ذلك، فإن طلبًا آخر إلى صفحة سجل التحرير يثير استثناءً:

mechanize._response.httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

أنا أفهم الاستثناء وسببه.أتحمل المسؤولية الكاملة عن عدم إساءة استخدام الموقع (بعد كل شيء، سيتم وضع علامة على أي استخدام باسم المستخدم الخاص بي)، أريد فقط تجنب فتح الصفحة يدويًا وحفظ HTML وتشغيل برنامج نصي على HTML المحفوظ.هل يمكنني التغلب على الخطأ 403؟

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

المحلول

إذا كنت تريد التحايل على الموقع robots.txt, ، يمكنك تحقيق ذلك عن طريق إخبارك mechanize.Browser لتجاهل robots.txt ملف.

br = mechanize.Browser()
br.set_handle_robots(False)

بالإضافة إلى ذلك، قد ترغب في تغيير وكيل المستخدم الخاص بالمتصفح الخاص بك حتى لا تبدو مثل الروبوت:

br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

يرجى العلم أنه عند القيام بذلك، فإنك في الواقع تخدع موقع الويب وتجعله يعتقد أنك عميل صالح.

نصائح أخرى

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