سؤال

أحاول أتمتة استخراج البيانات من موقع ويب وأنا حقا لا أعرف من أين أبدأ. أحد موردينا يعطونا الوصول إلى بعض بيانات تسجيل المعدات من خلال "كائنات الأعمال 11."تطبيق عبر الإنترنت. إذا لم تكن على دراية بهذا التطبيق عبر الإنترنت، فكر في ذلك كمولد لتقرير يستند إلى الويب. المشكلة هي أنني أحاول مراقبة الكثير من المعدات وقد أنشأ هذا المورد فقط طلب لاستخراج سجل واحد وقت. يأخذ هذا الطلب رقم الجهاز، وتاريخ البدء وتاريخ الانتهاء ... لتقديم المسائل أسوأ، يمكننا فقط التصدير إلى تنسيق Excel الثنائي حيث تم كسر تصدير DE "CSV" ورفضوا إصلاحه .. . وبالتالي نحن محدودون من خلال تقييد صف 65 536 في Excel ... (الذي يصل إلى 3-4 أيام من تسجيل البيانات في حالتي). لا يمكنني إنشاء عرض جديد لأن المورد فقط لديه حقوق المسؤول الضرورية.

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

قرأت عن AutoHotkey و Scripting AutoIT لكن يبدو أنهم محدودون فيما يتعلق بما يمكنهم القيام به على الويب. أيضا ... أنا عالق مع IE6 ... ولكن إذا كنت تعرف طريقة تتضمن متصفحا آخر، ما زلت مهتما جدا بإجابتك.

(بمجرد أن يكون لدي ملفات السجل محليا، استخراج البيانات ليس مشكلة)

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

المحلول

هناك بعض الأشياء التي قد تحاول بها. إذا كان الموقع عبارة عن HTML ويمكن طلب تقارير من قبل منشور بسيط أو الحصول عليه Urlib / Urlib2. وينبغي أن تكون وحدات كوكيليب بايثون كافية لإحضار وثيقة Excel.

ثم يمكنك تجربة هذا: xlrd. لاستخراج البيانات من Excel.

أيضا، ألق نظرة على: http://pamie.sourceforge.net./ لم أحاول ذلك بنفسي ولكن يبدو ودايا وسهلا الاستخدام.

نصائح أخرى

عادة، أود أن أقترح عدم استخدام IE (أو أي متصفح) على الإطلاق. تذكر أن برنامج مستعرض الويب هو مجرد برامج وكيل لإجراء طلبات HTTP وعرض النتائج بطرق ذات معنى. هناك طرق أخرى يمكنك تقديم طلبات HTTP مماثلة ومعالجة الردود. كل لغة حديثة تقريبا تحتوي هذه على API في مكان ما. وهذا ما يسمى الشاشة كشط أو كشط ويب.

ولكن لإكمال هذا الاقتراح، أحتاج إلى معرفة المزيد عن بيئة البرمجة الخاصة بك: أي، في أي لغة برمجة تتصور كتابة هذا البرنامج النصي؟

مثال نموذجي باستخدام C # حيث يمكنك فقط الحصول على نتيجة HTML كسلسلة تبدو مثل هذا:

new System.Net.WebClient().DownloadString("http://example.com");

يمكنك ذلك ثم تحليل السلسلة للعثور على أي حقول تحتاجها وإرسال طلب آخر. فئة WebClient لديها أيضا .DownloadFile() الطريقة التي قد تجدها مفيدة لاسترداد ملفات Excel.

نظرا لأنك يمكنك استخدام .NET، يجب أن تفكر في استخدام عنصر تحكم Windows Forms WebBrowser. يمكنك أتمتة ذلك للانتقال إلى الموقع، اضغط على الأزرار، وما إلى ذلك بمجرد تحميل صفحة التقرير، يمكنك استخدام التعليمات البرمجية للتنقل إلى HTML DOM للعثور على البيانات التي تريدها - لا توجد تعبيرات منتظمة

لقد فعلت شيئا مثل هذه السنوات، لاستخراج بيانات المزاد من موقع ئي باي.

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