[مسابقة Web Scraping] - [التحدي رقم 5]

تم تحميل الصفحة في 1,1571975 ثانية
[مسابقة Web Scraping] - [التحدي رقم 5]
الحالة
مغلق و غير مفتوح للمزيد من الردود.
إنضم
3 مايو 2016
المشاركات
424
الإعجابات
642
النقاط
93
بسم الله الرحمن الرحيم

و السلام عليكم و رحمة الله تعالى و بركاته
اليوم بإذن الله سيكون التحدي 5 من تحديات مسابقة Web Scraping

المطلوب
استخراج الـ message، cause، والـ action لخطأ ما من موقع Oracle Help Center

رابط الموقع

مثال لعملية البحث

يجب محاكاة الـ Http Request للضغط على زر البحث و ايجاد الصفحة الحقيقية التي ينتمي اليها الـ Error Code
و استخراج البيانات المناسبة الخاصة بالخطأ المحدد

سيتم ادخال الـ Error Code في الـ Console
و من ثم يجب استخراج الـ Message ، الـ Cause ثم الـ Action
و كتابة هذه المعلومات على الـ Console

ملحوظة مهمة جدا: يجب استخراج المعلومات الخاصة بالـ Error Code مهما كانت حروف الـ Error Code،
بمعنى أنه لم نطلب فقط الأخطاء البادئة بـ ORA، و لكن نطلب جميع أنواع الأخطاء الممكنة بما في ذلك ORA و NZE و غيرها ...

المعلومات المطلوبة
Error message
Error cause
Error action

صور توضيحية للمطلوب
عند الضغط على زر البحث

الصفحة التي ينتمي اليها الـ Error Code

كيفية البحث و اظهار النتائج

اللغات المسموحة
جميع لغات البرمجة مسموح بها

و في الختام أتمنى التوفيق للجميع
 
إنضم
2 أغسطس 2016
المشاركات
315
الإعجابات
233
النقاط
43
الإقامة
اليوم فوق الأرض وغدا تحتها
بسم الله الرحمن الرحيم

و السلام عليكم و رحمة الله تعالى و بركاته
اليوم بإذن الله سيكون التحدي 5 من تحديات مسابقة Web Scraping

المطلوب
استخراج الـ message، cause، والـ action لخطأ ما من موقع Oracle Help Center

رابط الموقع

مثال لعملية البحث

يجب محاكاة الـ Http Request للضغط على زر البحث و ايجاد الصفحة الحقيقية التي ينتمي اليها الـ Error Code
و استخراج البيانات المناسبة الخاصة بالخطأ المحدد

سيتم ادخال الـ Error Code في الـ Console
و من ثم يجب استخراج الـ Message ، الـ Cause ثم الـ Action
و كتابة هذه المعلومات على الـ Console

ملحوظة مهمة جدا: يجب استخراج المعلومات الخاصة بالـ Error Code مهما كانت حروف الـ Error Code،
بمعنى أنه لم نطلب فقط الأخطاء البادئة بـ ORA، و لكن نطلب جميع أنواع الأخطاء الممكنة بما في ذلك ORA و NZE و غيرها ...

المعلومات المطلوبة
Error message
Error cause
Error action

صور توضيحية للمطلوب
عند الضغط على زر البحث

الصفحة التي ينتمي اليها الـ Error Code

كيفية البحث و اظهار النتائج

اللغات المسموحة
جميع لغات البرمجة مسموح بها

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

مدمن برمجة

Web Scraping Professional
rankrankrank
إنضم
14 أغسطس 2010
المشاركات
929
الإعجابات
225
النقاط
43
حلي عالسريع

فيه بعض الاخطاء البسيطة ماسويت تنقية للمخرجات بالذات Caous + Action
التنقية تتم باستخراج text لكن للامانه تكيسلت
لاني فهمت الفكرة بطريقة غير وقعدت قرابة ساعه ونص
ولما انتهيت راجعت المسابقة طلعت غير اللي انا فاهمة مطلقا

هذي صورة للناتج
1

2


هذا الكود Python 3.5
كود Java Script
import requests as ses
import urllib.request
from bs4 import BeautifulSoup

start = 0
enter = input("enter Error Code > ")
url = "https://docs.oracle.com/apps/search/searchResults.jsp?q={}&start={}&pg=1&category=database&product=b28359-01&size=60&tn=1".format(
    enter, start)
ses_start = ses.Session()
ses_start.headers = {
    "Host": "docs.oracle.com",
    "User-Agent": "Mozilla/5.0(Windows NT 6.3;WOW64;rv:46.0)Gecko/20100101Firefox/46.0"
}
url_get = ses_start.get(url)
def get():

    urlc = list()
    soup = BeautifulSoup(url_get.text, 'html.parser')
    for i in soup.findAll('div', {'class': "srch-result"}):
        ch = i.p.span.a.text
        if enter in ch:
            urlc.append(i.p.span.a.get('href'))
    return urlc[0]


ses_start.close()
def finish():
    url_finish  = get()
    req = urllib.request.Request(url_finish)
    op  = urllib.request.urlopen(req).read()
    soup2 = BeautifulSoup(op,'html.parser')
    for i in soup2.findAll('div',{"class":"msgentry"}):
        if(i.find(id=enter)):
          #  print(i.dl.dt.span.text)
            Cause = i.dl("div",{"class":"msgexplan"})
            Action = i.dl("div",{"class":"msgaction"})
            print(i.dt.text)
            print(Cause)
            print(Action)
finish()
# ORA-12425



اتوقع ايضا ليس هو المطلوب لأني تشتت بالبداية اثناء الحل قرابة الساعة او ساعتين وبالنهاية طلعت الفكرة بطريقة جذرية تختلف لم اركز :(

ارجو المعذرة
 
إنضم
10 سبتمبر 2016
المشاركات
20
الإعجابات
36
النقاط
13
كود C#
  public static void Main() {
     string _ref = "ORA-12424";
     string url = string.Format("https://docs.oracle.com/apps/search/searchResults.jsp?q={0}&category=database", _ref);
     var r = _get(url);
     url = new Regex("topictitle.+?href=\"(.+?)\"").Match(r).Groups[1].Value;
     r = _get(url);
     var regxp = new Regex(string.Format("{0}(.+?)</dt>(?s).+?Cause.+?>(.+?)</p>.+?Action.+?>(.+?)</p>", _ref)).Match(r);
     Console.WriteLine(string.Format("title:{0}\ncause:{1}\naction:{2}",
       regxp.Groups[1].Value, regxp.Groups[2].Value, regxp.Groups[3].Value));
   }
   static string _get(string url) {
     using (var w = new WebClient()) {
       return w.DownloadString(url);
     }
   }
 
إنضم
10 سبتمبر 2016
المشاركات
20
الإعجابات
36
النقاط
13
كود Java Script
import urllib2
import re
ref = "ORA-12424"
url = "https://docs.oracle.com/apps/search/searchResults.jsp?q=%s&category=database" % ref
r = urllib2.urlopen(url).read()
url = re.search("topictitle.+?href=\"(.+?)\"", r).group(1)
r = urllib2.urlopen(url).read()
regxp = re.search("%s(.+?)</dt>(?s).+?Cause.+?>(.+?)</p>.+?Action.+?>(.+?)</p>" % ref, r)
print "title:%s\ncause:%s\naction:%s" % (regxp.group(1), regxp.group(2), regxp.group(3))
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل