سؤال

على الرغم من أن HTML Scraping موثق جيدًا مما أستطيع رؤيته، وأفهم مفهومه وتنفيذه، فما هي أفضل طريقة للاستخراج من المحتوى المختبئ خلف نماذج المصادقة.أشير إلى الاستخراج من المحتوى الذي يمكنني الوصول إليه بشكل قانوني، لذا فإن ما أبحث عنه هو طريقة لإرسال بيانات تسجيل الدخول تلقائيًا.

كل ما يمكنني التفكير فيه هو إعداد وكيل، والتقاط الإنتاجية من تسجيل الدخول اليدوي، ثم إعداد برنامج نصي لانتحال الإنتاجية كجزء من تنفيذ استخراج HTML.وفيما يتعلق باللغة، فمن المرجح أن يتم ذلك في بيرل.

هل لدى أي شخص تجربة مع هذا، أو مجرد فكرة عامة؟

يحررلقد كان هذا أجاب من قبل ولكن مع .NET.بينما يتم التحقق من صحة الطريقة التي أعتقد أنه ينبغي القيام بها، هل لدى أي شخص برنامج Perl النصي للقيام بذلك؟

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

المحلول

تحقق من بيرل WWW::مكننة المكتبة - تعتمد على LWP لتوفير أدوات للقيام بالضبط بنوع التفاعل الذي تشير إليه، ويمكنها الحفاظ على حالة ملفات تعريف الارتباط أثناء قيامك بذلك!

WWW::Mechanize, or Mech for short, helps you automate interaction with a website. It supports performing a sequence of page fetches including following links and submitting forms. Each fetched page is parsed and its links and forms are extracted. A link or a form can be selected, form fields can be filled and the next page can be fetched. Mech also stores a history of the URLs you've visited, which can be queried and revisited.

نصائح أخرى

ال وحدة LWP in Perl يجب أن يمنحك ما تبحث عنه.

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

هناك نوعان من المصادقة يتم استخدامهما بانتظام.المصادقة المستندة إلى HTTP والمصادقة المستندة إلى النموذج.

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

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

بالطبع هناك أيضًا مواقع مثل Stackoverflow التي تستخدم مصادقة خارجية مثل openid أو saml للمصادقة.هذه أكثر تعقيدًا للتعامل معها للتخريد.عادةً ما تريد العثور على مكتبة للتعامل معها.

نعم، يمكنك استخدام مكتبات أخرى للغة الخاصة بك إذا كانت بخلاف asp.net.

على سبيل المثال، في جافا يمكنك استخدام httpclient أو httpunit (حتى أنه يتعامل مع بعض جافا سكريبت الأساسية).

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