اذهب إلى المحتوى

Ali Haidar Ahmad

الأعضاء
  • المساهمات

    1068
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    43

كل منشورات العضو Ali Haidar Ahmad

  1. فرق قيمة ASCII بين الأحرف الكبيرة والصغيرة هو 32. على سبيل المثال، قيمة ASCII للحرف "B" هي 66 وقيمة ASCII للحرف "b" هي 98. برنامج لتحويل الأحرف الكبيرة إلى أحرف صغيرة: #include <iostream> using namespace std; int main() { char c; // إدخال حرف مكتوب بالحالة الكبيرة cout<<"Enter a character in uppercase: "; cin>>c; // إدخال محرف // تحويله من حرف صغير إلى كبير عبر إضافة 32 c=c+32; cout<<"Entered character in lowercase: "<<c; return 0; } /* Enter a character in uppercase: A Entered character in lowercase: a */ التحويل من أحرف صغيرة إلى كبيرة (سنطرح): #include <iostream> using namespace std; int main() { char c; cout<<"Enter a character in lowercase: "; cin>>c; c=c-32; cout<<"Entered character in lowercase: "<<c; return 0; } /* Enter a character in lowercase: a Entered character in lowercase: A */ برنامج لتحويل سلسلة من المحارف الكبيرة إلى صغيرة(يمكن أن تكون السلسلة بأحرف كبيرة أو مختلطة) وسنعتمد نفس المبدأ السابق: #include <iostream> #include <string> #include <cstring> using namespace std; int main() { // تعريف مصفوفة محارف لتخزين السلسلة char str[50]; int i; // إدخال السلسلة cout<<"Enter the String in uppercase: "; // تخزين السلسلة في مصفوفة المحارف cin>>str; // حلقة لتحويل كل حرف كبير إلى صغير for(i=0;i<=strlen(str);i++) { // قيم الآسكي للأحرف الكبيرة تتراوح بين 65 و 92 // وبالتالي نحن نريد تحويل الأحرف الكبيرة فقط إلى صغيرة // أي أن هذا الشرط لتجنب تعديل الأحرف الصغيرة if(str[i]>=65 && str[i]<=92) { str[i]=str[i]+32; } } cout<<"The entered string in lowercase: "<<str; return 0; } /* Enter the String in uppercase: Hello The entered string in lowercase: hello */ التحويل المعاكس: #include <iostream> #include <string> #include <cstring> using namespace std; int main() { char str[50]; int i; cout<<"Enter the String in lowercase: "; cin>>str; for(i=0;i<=strlen(str);i++) { if(str[i]>=92) { str[i]=str[i]-32; } } cout<<"The entered string in uppercase: "<<str; return 0; } /* Enter the String in lowercase: hello The entered string in uppercase: HELLO */
  2. بشكل عام يمكنك القيام بالخطوات التالية للإمساك بأي ملف XML وتحويله ل DF: # استيراد الوحدات اللازمة from bs4 import BeautifulSoup import pandas as pd # xml قراءة ملف ال contents = open("file.xml",'r').read() # BeautifulSoup تحليل الملف الذي تم الحصول عليه من خلال soup = BeautifulSoup(contents, 'lxml') # find_all الآن نقوم باستخراج البيانات حيث نستخدم الدالة # التي تُرجع البيانات المستخرجة الموجودة داخل الوسم الذي يتم تمريره لها authors = soup.find_all('author') pubdate = soup.find_all('publish_date') genres = soup.find_all('genre') des = soup.find_all('description') titles = soup.find_all('title') prices = soup.find_all('price') # xml الآن ، لدينا جميع البيانات المستخرجة من ملف # نحتاج الآن إلى دمج جميع البيانات المتعلقة بكتاب واحد من قوائم مختلفة # لذا سوف نستخدم حلقة # rows حيث يتم تخزين جميع بيانات كتاب معين من قوائم مختلفة في قائمة واحدة # data ثم يتم إضاقة كل صف في قائمة أخرى هي # كما يلي data = [] for i in range(0,len(authors)): rows = [authors[i].get_text(),titles[i].get_text(), genres[i].get_text(),prices[i].get_text(), pubdate[i].get_text(),des[i].get_text()] data.append(rows) # وأخيراً سنشكل الداتافريم df = pd.DataFrame(data,columns = ['Author','Book Title', 'Genre','Price','Publish Date', 'Description'])
  3. يمكنك القيام بذلك من خلال استخدام الدالة wrap كما يلي: # importing BeautifulSoup Module from bs4 import BeautifulSoup htmlDoc = '<p> sometexthere </p>' # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(htmlDoc, 'lxml') # تنفيذ عملية تغليف حول السلسلة soup.p.string.wrap(soup.new_tag("i")) print(soup) # <html><body><p><i> sometexthere </i></p></body></html> # تنفيذ عملية تغليف حول الوسم soup.p.wrap(soup.new_tag("div")) print(soup) # <html><body><div><p><i> sometexthere </i></p></div></body></html>
  4. يمكنك القيام بذلك بالشكل التالي: # استيراد الوحدات اللازمة from bs4 import BeautifulSoup # المستند الخاص بك htmlDoc = """ <p> <p></p> <strong>some<br>text<br>here</strong></p> """ # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(htmlDoc, 'lxml') # الآن نقوم بالمرور على كل الوسوم for x in soup.find_all(): # نقوم بجلب النص من الوسم وإزالة المسافات الفارغة # وبعد محو المسافات الفارغة نتحقق فيما إذا كان طوله يساوي 0 # في حالة أصبح طوله 0 نقوم بحذف الوسم if len(x.get_text(strip=True)) == 0: x.extract() # طباعة النتيجة print(soup) /* <html><body> <strong>sometexthere</strong> </body></html> */
  5. إليك الكود التالي الذي يقوم بحذف كل المسافات الزائدة في أي مكان من الجملة، على سبيل المثال: Input: " Remove extra spaces from a string , c++ . " Output: "Remove extra spaces from a string, c++." الحل هو بالاحتفاظ بمؤشرين كلاهما يشير إلى بداية المصفوفة، بحيث يتتبع المؤشر الأول الموضع التالي ليتم ملؤه في سلسلة الخرج. أما الثاني لقراءة جميع أحرف السلسلة واحداً تلو الآخر. الآن عند إيجاد أي محرف بدون مسافة، يتم نسخ المحرف إلى موقع المؤشر الأول ثم يتم تقديم كل من المؤشرين الأول والثاني، وإذا كان المحرف الذي لا يحتوي على مسافة عبارة عن نقطة أو فاصلة أو علامة استفهام، فإننا نزيل أي مسافة سابقة قبله. أيضاً عند إيجاد مسافات متتالية، يتم نسخ مسافة واحدة فقط إلى موقع المؤشر الأول ويتم تجاهل الباقي. يتم التعامل مع المسافات البادئة والزائدة بشكل منفصل في الحل. #include <iostream> using namespace std; void removEextraSpace(string &myStr) { int firstPtr = 0; // تعريف المؤشر الأول int secondPtr= -1; // تعريف المؤشر الثاني // إشارة للتحقق فبما إذا كنا قد وجدنا مسافة أم لا bool space = false; // لمعالجة المسافات في البداية while (++secondPtr < myStr.length() && myStr[secondPtr] == ' '); // قراءة كل المحارف من السلسلة while (secondPtr < myStr.length()) { // إذا لم يكن المحرف الحالي مسافة if (myStr[secondPtr] != ' ') { // حذف المسافات التي تسبق النقطة واشاؤة الاستفهام if ((myStr[secondPtr] == '.' || myStr[secondPtr] == ',' || myStr[secondPtr] == '?') && firstPtr - 1 >= 0 && myStr[firstPtr - 1] == ' ') myStr[firstPtr - 1] = myStr[secondPtr++]; else // ال المحرف الحالي عند الفهرس المحدد بالمؤشر الأول، myStr[firstPtr++] = myStr[secondPtr++]; // تقديمهم خطوة // وضع الإشارة على خاطئ في حالة عدم مصادفة مسافة space = false; } // حلة المحرف الحالي هو مسافة else if (myStr[secondPtr++] == ' ') { // إذا تمت مصادفة مسافة لأول مرة بعد الكلمة ، فضع مسافة واحدة في الإخراج واضبط الإشارة على صحيح if (!space) { myStr[firstPtr++] = ' '; space = true; } } } // إزالة المسافات الزائدة if (firstPtr <= 1) myStr.erase(myStr.begin() + firstPtr, myStr.end()); else myStr.erase(myStr.begin() + firstPtr - 1, myStr.end()); } // الاختبار int main() { string str = " Remove extra spaces from a string , c++ . "; removEextraSpace(str); cout << str; return 0; } /* String after removing extra spaces: Remove extra spaces from a string, c++. */
  6. بشكل عام يمكنك الحصول على جميع الأصناف الموجودة ضمن أي رابط بالشكل التالي: # استيراد الوحدات اللازمة from bs4 import BeautifulSoup import requests # تحديد الموقع الهدف URL = "https://en.wikipedia.org/wiki/2019_Ballon_d%27Or" # والحصول على كائن الاستجابة URL طلب عنوان responseObj = requests.get(URL) # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(responseObj.content, 'lxml') # مجموعة لوضع الأصناف ضمنها class_set = set() # الحصول على جميع الوسوم tags = {tag.name for tag in soup.find_all()} # المرور على كل الوسوم for tag in tags: # الحصول على جميع عناصر الوسم for i in soup.find_all( tag ): # class للتحقق فيما إذا كانت تحمل السمة has_attr نستخدم الدالة if i.has_attr( "class" ): if len( i['class'] ) != 0: class_set.add(" ".join( i['class'])) class_list=list(class_set) # طباعة بعض منها print(class_list[0:5]) # ['infobox-data', 'searchButton mw-fallbackSearchButton', # 'searchButton', 'mw-portlet mw-portlet-tb vector-menu vector-menu-portal portal', # 'mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown']
  7. علينا الوصول إلى الموقع ثم تحليل ملف ال HTML من خلال bs4. ثم كخطوة ثانية نذهب إلى الصفحة التي تطلبها، ستجد أن اسم ال class للجدول المطلوب يحمل اسم wikitable كما ويحوي عدة وسوم tr تمثل صفوف الجدول. بحيث أن علامة tr الأولى مخصصة لعناوين الجدول وأن وسوم tr الثانية مخصصة لبيانات الجدول. لذا تابع الكود: ###################################### خطوة 1##################################### # استيراد الوحدات اللازمة from bs4 import BeautifulSoup import requests # تحديد الموقع الهدف URL = "https://en.wikipedia.org/wiki/2019_Ballon_d%27Or" # والحصول على كائن الاستجابة URL طلب عنوان responseObj = requests.get(URL) # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(responseObj.text, 'lxml') # للأعمدة td يستخدم لإنشاء صفوف الجدول والوسم tr تذكر أن الوسم ###################################### خطوة 2##################################### # class وتحديد اسم ال find الآن سنقوم بالإمساك بالجدول من خلال استخدام الدالة gdp_table = soup.find("table", attrs={"class": "wikitable"}) # سنقوم بالامساك كل الصفوف المكون منها هذا الجدول gdp_table_data = gdp_table.tbody.find_all("tr") # إنشاء قائمة لوضع أسماء الأعمدة فيها headings = [] for th in gdp_table_data[0].find_all("th"): # أزل أي أسطر جديدة ومسافات زائدة من اليسار واليمين headings.append(th.text.replace('\n', ' ').strip()) # طباعتها print(headings) # ['Rank', 'Player', 'Club(s)', 'Points'] ###################################### خطوة3 ##################################### # إنشاء قائمة لنضع فيها البيانات table_data=[] # الإمساك بكل الصفوف عدة الصف الأول الذي يمثل العناوين for tr in gdp_table_data[1:]: # سنضع هنا بيانات كل سطر على حدى ثم سنضيفه للقائمة الأساسية row=[] for td in tr.find_all("td"): # أزل أي أسطر جديدة ومسافات زائدة من اليسار واليمين row.append(td.text.replace('\n', ' ').strip()) table_data.append(row) # طباعة بعض من بيانات الجدول print(table_data[0:3]) """ [['1', 'Lionel Messi', 'Barcelona', '686'], ['2', 'Virgil van Dijk', 'Liverpool', '679'], ['3', 'Cristiano Ronaldo', 'Juventus', '476']] """
  8. لتحميل ملف PDF، يمكنك اتباع الخطوات التالية: 1. استيراد مكتبتي BeautifulSoup و requests. 2. طلب عنوان URL والحصول على الاستجابة (من خلال مكتبة requests يمكننا تقديم الطلب والحصول على كائن استجابة). 3. البحث عن جميع الروابط الموجودة على صفحة الويب. 4. التحقق من وجود روابط PDF في تلك الروابط. 5. الحصول على ملف ال PDF من خلال كائن الاستجابة. # استيراد الوحدات from bs4 import BeautifulSoup import requests # تحديد رابط الموقع الهدف url = "page_link" # والحصول على كائن الاستجابة url طلب عنوان responseObj = requests.get(url) # BeautifulSoup تحليل النص الذي تم الحصول عليه من خلال soup = BeautifulSoup(responseObj.text, 'lxml') # إيجاد كل الروابط allLinks = soup.find_all('a') pdfNum = 0 # نقوم بتحميله pdf الآن نقوم بالمرور على كل الروابط، وعند العثور على ملف for link in allLinks: if ('.pdf' in link.get('href', [])): pdfNum += 1 print("Downloading file number: ", pdfNum) # الحصول على كائن استجابة للرابط responseObj = requests.get(link.get('href')) # pdf كتابة المحتوى في ملف pdf = open("pdf"+str(pdfNum)+".pdf", 'wb') pdf.write(responseObj.content) pdf.close() print("File ", pdfNum, " downloaded") print("All PDF files downloaded")
  9. يمكنك القيام بذلك بالشكل التالي: # استيراد الوحدات from bs4 import BeautifulSoup import requests # تحديد العنوان url="https://undergrad.cs.umd.edu/what-computer-science" # والحصول على الصفحة GET إرسال طلب page = requests.get(url) # BeautifulSoup تحليل مكونات الصفحة باستخدام soup = BeautifulSoup(page.content, "lxml") # lxml استخدمنا المحلل # استخلاص كل الفقرات وعرضها for para in soup.find_all("p"): print(para.get_text()) الخرج: Computer Science is the study of computers and computational systems. Unlike electrical and computer engineers, computer scientists deal mostly with software and software systems; this includes their theory, design, development, and application. Principal areas of study within Computer Science include artificial intelligence, computer systems and networks, security, database systems, human computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics and theory of computing. Although knowing how to program is essential to the study of computer science, it is only one element of the field. Computer scientists design and analyze algorithms to solve programs and study the performance of computer hardware and software. The problems that computer scientists encounter range from the abstract-- determining what problems can be solved with computers and the complexity of the algorithms that solve them – to the tangible – designing applications that perform well on handheld devices, that are easy to use, and that uphold security measures. Graduates of University of Maryland’s Computer Science Department are lifetime learners; they are able to adapt quickly with this challenging field. Contact Our Office
  10. يمكنك القيام بذلك بالشكل التالي: # Import Beautiful Soup from bs4 import BeautifulSoup htmlDoc=''' <html> <h2 class="first second third"> Heading 1 </h2> <h1> Heading 2 </h1> </html> ''' # تحليل المكونات soup = BeautifulSoup(htmlDoc, "lxml") # الحصول على الوسم tag = soup.h2 #الحصول على قيمة السمة المطلوبة attribute = tag['class'] # طباعتها print(attribute) # ['first', 'second', 'third'] وبفرض كان لديك أكثر من وسم من نفس النوع استخدم findall: # Import Beautiful Soup from bs4 import BeautifulSoup htmlDoc=''' <html> <h2 class="v0"> Heading 1 </h2> <h2 class="v1"> Heading 2 </h2> <h2 class="v2"> Heading 3 </h2> <h1> Heading 2 </h1> </html> ''' # تحليل المكونات soup = BeautifulSoup(htmlDoc, "lxml") tags = soup.find_all('h2') for tag in tags: attribute = tag['class'] print(attribute) """ ['v0'] ['v1'] ['v2'] """ وبالتالي في مثال يمكنك القيام بذلك بالشكل التالي: # استيراد الوحدات from bs4 import BeautifulSoup import requests # تحديد العنوان url="https://www.imdb.com/title/tt5648202/" # GET إرسال طلب page = requests.get(url) # BeautifulSoup تحليل مكونات الصفحة باستخدام soup = BeautifulSoup(page.content, "lxml") # lxml استخدمنا المحلل # main الحصول على كل الوسوم التي تحمل اسم tags = soup.find_all('main') # نقوم بالمرور عليها واحدة تلو الأخرى for tag in tags: # الحصول على قيمة السمة المطلوبة attribute = tag['class'] # طباعتها print(attribute)
  11. يمكنك اتباع الخطواط التالية: أولاً: استيراد الوحدات اللازمة وهما bs4 و request. ثانياُ: تحديد الصفحة الهدف وإرسال طلب GET. ثالثاً: تحديد ال tag المطلوب واستخدام الدالة findall لإيجاده. رابعاً: تحديد النص الهدف. خامساً: للبحث عن نص داخل ال tag، نحتاج إلى التحقق من شرط الاحتواء بمساعدة ال string function، حيث أن ال string function ستُرجع النص الموجود داخل ال tag. وبالتالي نختبر احتواءه ونطبعه في حالة تحقق الشرط. كما في الكود التالي: # استيراد الوحدات from bs4 import BeautifulSoup import requests # https://academy.hsoub.com/ # تحديد رابط الموقع الهدف url = 'https://academy.hsoub.com/learn/computer-science/' # للصفحة GET إرسال طلب page = requests.get(url) # soup وإنشاء كائن BeautifulSoup تحليل مكونات الصفحة من خلال soup = BeautifulSoup(page.content, "html.parser") # والبحث عنه tag تحديد ال child_soup = soup.find_all('h2') # تحديد النص المطلوب text = 'دورة علوم الحاسوب' # سنبحث في العلامة التي يتطابق فيها النص مع النص المحدد for i in child_soup: if(i.string in text): print(i) # الخرج: # <h2 class="no-margin clr-white font-bold">دورة علوم الحاسوب</h2> في الكود السابق استخدمت حلقة for للبحث عن النص. وكحل بديل يمكنك استخدام lambda: # استيراد الوحدات from bs4 import BeautifulSoup import requests # تحديد رابط الموقع الهدف url = 'https://wiki.hsoub.com/?utm_source=academy.hsoub.com&utm_medium=Links&utm_campaign=HsoubFooter' # للصفحة GET إرسال طلب page = requests.get(url) # soup وإنشاء كائن BeautifulSoup تحليل مكونات الصفحة من خلال soup = BeautifulSoup(page.content, "html.parser") # النص text = 'Python' TAG="a" # عملية البحث نفسها لكن من خلال لمدا res = soup.find_all(lambda tag: tag.name == TAG and text in tag.text) # طباعة النتيجة print(res) # [<a href="/Python" title="Python">Python</a>]
  12. اتبع الخطوات التالية: أولاً: استيراد مكتبة bs4. ثانياً: الحصول على مستند ال HTML المطلوب. ثالثاً: تحليل المحتوى ووضعه في كائن BeautifulSoup. رابعاً: البحث حسب فئة CSS : يمكننا القيام بذلك من خلال الوسيط المسمى _class (لا يمكن استخدام "class" لأن class كلمة محجوزة في بايثون وسيعطي المترجم خطأ قواعدي إذا تم استخدام "class" ك keyword argument). خامساً: نستخدم الدالة find_all مع الوسيط المسمى class_ للعثور على جميع العلامات باستخدام فئة CSS المحددة (يمكنك استخدام الدالة find إذا أردت العثور على tag واحدة فقط). وأخيراً نقوم بطباعة ال tags المستخرجة. from bs4 import BeautifulSoup # HTML مستند document = """ <html> <head> <title> Hsoub Academy </title> </head> <body> <div class="ext" >Extract this tag</div> </body> </html> """ # بناء دالة لاستخراج العلامات def find_tags_from_class(htmlDoc): # HTML تحليل محتويات ملف ال soup = BeautifulSoup(htmlDoc, "html.parser") # css البحث عن العلامات حسب فئة res = soup.find("div", class_= "ext") # طباعتها print(res) # استدعاء الدالة find_tags_from_class(document) # الخرج: # <div class="ext">Extract this tag</div> مثال آخر، في حالة استخدام الدالة find_all من أجل إيجاد جميع ال tags: # Import Module from bs4 import BeautifulSoup document = """ <html> <head> <title> Hsoub Academy </title> </head> <body> <table> <tr> <td class = "table-row"> t1 </td> <td class = "table-row"> t2 </td> <td class = "table-row"> t3 </td> </tr> </table> </body> </html> """ def find_tags_from_class(htmlDoc): soup = BeautifulSoup(htmlDoc, "html.parser") res = soup.find_all("td", class_= "table-row") for row in res: print(row) find_tags_from_class(document) # الخرج: """ <td class="table-row"> t1 </td> <td class="table-row"> t2 </td> <td class="table-row"> t3 </td> """ مثال آخر عن البحث عن العلامات بواسطة فئة CSS من موقع ويب: from bs4 import BeautifulSoup import requests # تعيين الموقع import requests URL = "https://academy.hsoub.com/" HTML_DOC = requests.get(URL) # Function to find tags def find_tags_from_class(html): soup = BeautifulSoup(html.content, "html5lib") div = soup.find("div", class_= "body") print(div) find_tags_from_class(HTML_DOC)
  13. يمكنك استخدام string streams. حيث أنه في هذه الطريقة، يعلن ال string stream عن كائن (stream object) يقوم أولاً بإدخال رقم ك stream في كائن، ثم يستخدم الدالة ()str لتحويله إلى سلسلة. #include<iostream> #include <sstream> // string streams من أجل #include <string> // string من أجل using namespace std; int main() { int x = 2513183; // output string stream إنشاء كائن ostringstream str1; // (stream) إرسال رقم كتدفق في سلسلة الإخراج str1 << x; // the str() converts number into string string s = str1.str(); // عرض النتيجة cout << "The newly formed string from number is : "; cout << s << endl; return 0; } // الخرج: /* The newly formed string from number is : 2513183 */ وللتحويل المعاكس (من سلسلة إلى رقم) يمكنك استخدم stringstream، وهي طريقة سهلة لتحويل سلاسل نصية من الأرقام إلى ints أو floats أو double. مثال: #include <iostream> #include <sstream> using namespace std; int main() { string s = "12345"; // stringstream كائن من الصنف stringstream obj(s); // الكائن له القيمة 12345 وسنقوم بدفقه إلى عدد الصحيح int x = 0; obj >> x; //يحمل القيمة المطلوبة x الآن المتغير cout << "Value of x : " << x; return 0; } /* Value of x : 12345 */
  14. على فرض نريد استخراج جميع العناوين الموجودة ضمن الصفحة الرئيسية لأكاديمية حسوب، يمكننا القيام كما يلي: from bs4 import BeautifulSoup import requests url = "https://academy.hsoub.com/" // نحدد عنوان الويب للصفحة الهدف # المحدد url إلى عنوان GET إرسال طلب # للحصول على البيانات من الخادم req = requests.get(url) # BeautifulSoup الآن لتحليل المستند ، نقوم بتمريره إلى باني # كذلك نحدد المحلل الذي نريد استخدامه soup = BeautifulSoup(req.text, "html.parser") # هنا استخدمنا المحلل الافتراضي print(soup.title) # هنا سنعرض عنوان الصفحة # الخرج # <title>أكاديمية حسوب</title> حيث أن req.text تُرجع محتوى الاستجابة بترميز unicode. ولتحليل مستند ، نقوم بتمريره إلى باني BeautifulSoup. حيث يمكنك تمرير سلسلة كما فعلنا أو مقبض لملف مفتوح (سأعرض لك ذلك بعد قليل). ثم تقوم BeautifulSoup بتحليل المستند باستخدام أفضل محلل متاح، وهنا سيستخدم محلل HTML (وهو المحلل الافتراضي). الآن لاستخراج جميع عناوين URL داخل صفحة ويب. نحتاج فقط إلى إضافة السطر أدناه من التعليمات البرمجية: for link in soup.find_all('a'): # إيجاد كل العناوين print(link.get('href')) # استخراجها وطباعتها الخرج: #elContent https://academy.hsoub.com/discover/ https://academy.hsoub.com/search/ # https://academy.hsoub.com/ https://academy.hsoub.com/login/ https://academy.hsoub.com/login/?loginProcess=Hsoub&ref=aHR0cHM6Ly9hY2FkZW15Lmhzb3ViLmNvbS9sb2dpbi8=&csrf=06bb48a1b837697033df6270ca54b751 https://academy.hsoub.com/register/ # https://academy.hsoub.com/index.php?app=core&module=search&controller=search&csrfKey=06bb48a1b837697033df6270ca54b751 https://academy.hsoub.com/search/ https://academy.hsoub.com https://academy.hsoub.com/discover/ https://academy.hsoub.com/search/ # http://twitter.com/HsoubAcademy http://www.facebook.com/HsoubAcademy https://www.youtube.com/channel/UCJv37tcBvJlBF2MoVMRMvbQ https://academy.hsoub.com/programming/general/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-r662/ https://wiki.hsoub.com # https://academy.hsoub.com/# https://academy.hsoub.com/entrepreneurship/ https://academy.hsoub.com/freelance/ https://academy.hsoub.com/marketing/ https://academy.hsoub.com/programming/ https://academy.hsoub.com/design/ https://academy.hsoub.com/devops/ https://academy.hsoub.com/apps/ https://academy.hsoub.com/certificates/ # https://academy.hsoub.com/questions/ https://academy.hsoub.com/questions/c5-entrepreneurship/ https://academy.hsoub.com/questions/c8-freelance/ https://academy.hsoub.com/questions/c7-marketing/ https://academy.hsoub.com/questions/c3-programming/ https://academy.hsoub.com/questions/c4-design/ https://academy.hsoub.com/questions/c6-devops/ https://academy.hsoub.com/questions/c9-apps/ https://academy.hsoub.com/questions/c10-certificates/ # https://academy.hsoub.com/files/ https://academy.hsoub.com/files/c2-entrepreneurship/ https://academy.hsoub.com/files/c3-freelance/ https://academy.hsoub.com/files/c4-marketing/ https://academy.hsoub.com/files/c5-programming/ https://academy.hsoub.com/files/c6-design/ https://academy.hsoub.com/files/c7-devops/ # https://academy.hsoub.com/store/ https://academy.hsoub.com/store/c1-%D8%AF%D9%88%D8%B1%D8%A7%D8%AA-%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D9%8A%D8%A9/ # https://academy.hsoub.com/store/gift-cards/ https://academy.hsoub.com/store/redeem/ # # # https://academy.hsoub.com/discover/ https://academy.hsoub.com/ None https://academy.hsoub.com/learn/computer-science/ https://academy.hsoub.com/learn/front-end-web-development/ https://academy.hsoub.com/learn/javascript-application-development/ https://academy.hsoub.com/learn/php-web-application-development/ https://academy.hsoub.com/learn/hybrid-mobile-application-development/ https://academy.hsoub.com/learn/ruby-web-application-development/ https://academy.hsoub.com/entrepreneurship/ https://academy.hsoub.com/freelance/ https://academy.hsoub.com/marketing/ https://academy.hsoub.com/programming/ https://academy.hsoub.com/design/ https://academy.hsoub.com/devops/ https://academy.hsoub.com/apps/ https://academy.hsoub.com/certificates/ #elTabBar None None None None None None None None https://academy.hsoub.com/questions/4-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A3%D9%81%D9%83%D8%A7%D8%B1-%D8%BA%D9%8A%D8%B1-%D8%A7%D9%84%D8%AA%D9%82%D9%84%D9%8A%D8%AF%D9%8A%D8%A9-%D9%84%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D9%85%D8%B4%D8%B1%D9%88%D8%B9-%D9%86%D8%A7%D8%AC%D8%AD%D8%9F/ https://academy.hsoub.com/questions/5551-%D9%87%D9%84-%D9%8A%D9%8F%D9%85%D9%83%D9%86-%D8%A3%D9%86-%D8%AA%D9%88%D8%A7%D8%AC%D9%87-%D8%B4%D8%B1%D9%83%D8%AA%D9%8A-%D8%A7%D9%84%D9%86%D8%A7%D8%B4%D8%A6%D8%A9-%D8%A7%D9%84%D9%85%D9%8F%D9%86%D8%A7%D9%81%D8%B3%D9%8A%D9%86-%D8%A8%D8%AC%D8%AF%D8%A7%D8%B1%D8%A9%D8%9F/ https://academy.hsoub.com/questions/6155-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A3%D8%B1%D9%83%D8%A7%D9%86-%D8%AE%D8%B7%D8%A9-%D8%A7%D9%84%D8%B9%D9%85%D9%84-%D8%A7%D9%84%D8%AC%D9%8A%D8%AF%D8%A9%D8%9F/ https://academy.hsoub.com/questions/6158-%D9%83%D9%8A%D9%81-%D8%A3%D8%AD%D8%B5%D9%84-%D8%B9%D9%84%D9%89-%D8%AA%D9%85%D9%88%D9%8A%D9%84-%D8%B0%D8%A7%D8%AA%D9%8A-%D9%84%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%8A%D8%9F/ https://academy.hsoub.com/questions/35-%D9%87%D9%84-%D9%8A%D9%85%D9%83%D9%86-%D9%84%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D8%A7%D8%B4%D8%A6%D8%A9-%D8%A7%D9%86-%D8%AA%D8%B9%D8%AA%D9%85%D8%AF-%D8%B9%D9%84%D9%89-%D8%AE%D9%85%D8%B3%D8%A7%D8%AA-%D8%A3%D9%88-%D9%81%D8%A7%D9%8A%D9%81%D8%B1-%D9%84%D8%AE%D8%AF%D9%85%D8%A7%D8%AA-%D8%AA%D8%AD%D8%AA%D8%A7%D8%AC%D9%87%D8%A7%D8%9F/ https://academy.hsoub.com/questions/790-%D9%83%D9%8A%D9%81-%D8%A3%D9%82%D9%86%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D9%88%D9%82%D9%8A%D9%86-%D8%A8%D8%AA%D8%B3%D9%88%D9%8A%D9%82-%D9%85%D9%86%D8%AA%D8%AC%D9%8A%D8%9F/ https://academy.hsoub.com/questions/284-%D9%83%D9%8A%D9%81-%D8%A3%D9%82%D9%88%D9%85-%D8%A8%D8%AA%D8%AD%D9%81%D9%8A%D8%B2-%D9%88%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D9%81%D8%B1%D9%8A%D9%82-%D8%B9%D9%85%D9%84%D9%8A-%D9%81%D9%8A-%D8%B3%D8%A8%D9%8A%D9%84-%D8%A7%D9%84%D8%AD%D8%B5%D9%88%D9%84-%D8%B9%D9%84%D9%89-%D8%A3%D9%81%D8%B6%D9%84-%D8%A7%D9%84%D9%86%D8%AA%D8%A7%D8%A6%D8%AC%D8%9F/ https://academy.hsoub.com/questions/295-%D9%87%D9%84-%D9%8A%D8%AC%D8%A8-%D8%B9%D9%84%D9%8A-%D8%A7%D9%84%D9%82%D9%84%D9%82-%D8%A8%D8%B4%D8%A3%D9%86-%D8%A7%D9%84%D8%B9%D9%84%D8%A7%D9%85%D8%A9-%D8%A7%D9%84%D8%AA%D8%AC%D8%A7%D8%B1%D9%8A%D8%A9-%D8%A7%D9%84%D8%A7%D8%B3%D9%85%D8%A7%D9%84%D8%B4%D8%B9%D8%A7%D8%B1-%D9%82%D8%A8%D9%84-%D8%A5%D8%B7%D9%84%D8%A7%D9%82-%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%8A-%D8%A7%D9%84%D8%AC%D8%AF%D9%8A%D8%AF%D8%9F/ https://academy.hsoub.com/questions/17-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A3%D9%81%D8%B6%D9%84-%D8%B7%D8%B1%D9%8A%D9%82%D8%A9-%D9%84%D9%84%D8%AA%D9%91%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B7%D9%84%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D8%B9%D8%AF%D9%8A%D9%84-%D8%A7%D9%84%D9%85%D9%8F%D8%AA%D9%83%D8%B1%D9%91%D8%B1%D8%A9-%D9%85%D9%86-%D8%A7%D9%84%D8%B9%D9%85%D9%8A%D9%84%D8%9F/ https://academy.hsoub.com/questions/33-%D8%A3%D9%8A%D9%87%D8%A7-%D8%A3%D9%81%D8%B6%D9%84-%D9%84%D9%84%D8%AD%D8%B5%D9%88%D9%84-%D8%B9%D9%84%D9%89-%D8%AE%D8%AF%D9%85%D8%A7%D8%AA-%D8%B9%D8%A7%D9%84%D9%8A%D8%A9-%D8%A7%D9%84%D8%AC%D9%88%D8%AF%D8%A9-%D9%85%D9%8F%D8%B3%D8%AA%D9%82%D9%84-%D8%A3%D9%85-%D8%AE%D9%85%D8%B3%D8%A7%D8%AA-%D8%A3%D9%85-%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A3%D8%AE%D8%B1%D9%89%D8%9F/ https://academy.hsoub.com/questions/3330-%D9%83%D9%8A%D9%81-%D8%A3%D9%88%D8%A7%D8%B2%D9%86-%D8%A8%D9%8A%D9%86-%D8%AF%D8%B1%D8%A7%D8%B3%D8%AA%D9%8A-%D9%88%D8%A7%D9%84%D8%B9%D9%85%D9%84-%D8%A7%D9%84%D8%AD%D8%B1%D8%9F/ https://academy.hsoub.com/questions/19-%D9%83%D9%8A%D9%81-%D8%B3%D8%AA%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%B9%D9%85%D9%8A%D9%84-%D9%84%D8%A7-%D9%8A%D8%B1%D9%8A%D8%AF-%D8%A7%D9%84%D8%AF%D9%81%D8%B9%D8%9F/ https://academy.hsoub.com/questions/278-%D9%87%D9%84-%D9%8A%D8%AC%D8%A8-%D8%A3%D9%86-%D8%A3%D8%AA%D8%B1%D9%83-%D9%88%D8%B8%D9%8A%D9%81%D8%AA%D9%8A-%D8%A7%D9%84%D8%AD%D8%A7%D9%84%D9%8A%D8%A9-%D9%84%D9%84%D8%B9%D9%85%D9%84-%D9%83%D9%85%D8%B3%D8%AA%D9%82%D9%84%D8%9F/ https://academy.hsoub.com/questions/32-%D9%83%D9%8A%D9%81-%D8%A3%D8%AD%D8%B5%D9%84-%D8%B9%D9%84%D9%89-%D8%A3%D9%88%D9%84-%D9%88%D8%B8%D9%8A%D9%81%D8%A9-%D9%84%D9%8A-%D9%83%D9%85%D8%B3%D8%AA%D9%82%D9%84%D8%9F/ https://academy.hsoub.com/questions/50-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A3%D9%87%D9%85-%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A7%D9%84%D8%B9%D9%85%D9%84-%D8%A7%D9%84%D8%AD%D8%B1%D8%9F/ https://academy.hsoub.com/questions/316-%D9%85%D9%86-%D8%A3%D9%8A%D9%86-%D8%A3%D8%AD%D8%B5%D9%84-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D8%AE%D8%A8%D8%B1%D8%A9-%D8%A5%D8%B0%D8%A7-%D9%83%D8%A7%D9%86%D8%AA-%D8%A7%D9%84%D8%AC%D9%85%D9%8A%D8%B9-%D9%8A%D8%B7%D9%84%D8%A8%D9%87%D8%A7-%D8%B9%D9%86%D8%AF-%D8%A7%D9%84%D8%AA%D9%88%D8%B8%D9%8A%D9%81%D8%9F/ https://academy.hsoub.com/questions/15-%D9%87%D9%84-%D9%85%D9%86-%D9%86%D8%B5%D8%A7%D8%A6%D8%AD-%D9%84%D8%A2%D9%84%D9%8A%D8%A9-%D9%85%D9%86%D8%A7%D8%B3%D8%A8%D8%A9-%D9%88%D9%81%D8%B9%D8%A7%D9%84%D8%A9-%D9%84%D8%B5%D8%B1%D9%81-%D9%85%D9%8A%D8%B2%D8%A7%D9%86%D9%8A%D8%A9-%D8%A7%D9%84%D8%AF%D8%B9%D8%A7%D9%8A%D8%A9%D8%9F/ https://academy.hsoub.com/questions/7046-%D9%83%D9%8A%D9%81-%D8%A3%D8%B2%D9%8A%D8%AF%D9%8F-%D9%85%D9%86-%D8%A3%D8%B1%D8%A8%D8%A7%D8%AD-%D8%A7%D9%84%D8%A5%D8%B9%D9%84%D8%A7%D9%86%D8%A7%D8%AA%D8%9F/ https://academy.hsoub.com/questions/54-%D8%A3%D9%8A%D9%87%D9%85%D8%A7-%D8%A3%D9%81%D8%B6%D9%84-%D9%84%D9%84%D9%86%D8%B4%D8%B1-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D8%B4%D8%A8%D9%83%D8%A7%D8%AA-%D8%A7%D9%84%D8%A7%D8%AC%D8%AA%D9%85%D8%A7%D8%B9%D9%8A%D8%A9-buffer-%D8%A3%D9%85-hootsuite%D8%9F/ https://academy.hsoub.com/questions/461-%D9%83%D9%8A%D9%81-%D8%A3%D9%82%D9%88%D9%85-%D8%A8%D8%AA%D8%B3%D8%B9%D9%8A%D8%B1-%D9%85%D9%86%D8%AA%D8%AC%D8%A7%D8%AA%D9%8A%D8%9F/ https://academy.hsoub.com/questions/2046-%D9%83%D9%8A%D9%81-%D8%A3%D8%B3%D8%AA%D8%AE%D8%AF%D9%85-%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A7%D9%84%D8%AA%D9%88%D8%A7%D8%B5%D9%84-%D8%A7%D9%84%D8%A7%D8%AC%D8%AA%D9%85%D8%A7%D8%B9%D9%8A-%D9%84%D8%AA%D9%82%D8%AF%D9%8A%D9%85-%D8%AE%D8%AF%D9%85%D8%A9-%D8%B9%D9%85%D9%84%D8%A7%D8%A1-%D9%85%D9%8F%D9%85%D9%8A%D8%B2%D8%A9%D8%9F/ https://academy.hsoub.com/questions/2893-%D9%83%D9%8A%D9%81-%D8%A3%D8%B1%D8%A8%D8%AD-%D9%85%D9%86-%D8%A7%D9%84%D8%AA%D8%B3%D9%88%D9%8A%D9%82-%D8%A8%D8%A7%D9%84%D8%B9%D9%85%D9%88%D9%84%D8%A9%D8%9F/ https://academy.hsoub.com/questions/2839-%D9%85%D8%A7%D9%87%D9%8A-%D8%A7%D9%84%D8%B7%D8%B1%D9%82-%D8%A7%D9%84%D9%85%D9%85%D9%86%D9%88%D8%B9%D8%A9-%D9%88%D8%A7%D9%84%D9%85%D8%AD%D8%B8%D9%88%D8%B1%D8%A9-%D9%81%D9%8A-%D8%A7%D9%84%D8%AA%D8%B3%D9%88%D9%8A%D9%82-%D8%A8%D8%A7%D9%84%D8%B9%D9%85%D9%88%D9%84%D8%A9%D8%9F/ https://academy.hsoub.com/questions/626-%D9%83%D9%8A%D9%81-%D8%A3%D9%83%D8%AA%D8%A8-%D8%B1%D8%B3%D8%A7%D9%84%D8%A9-%D8%AA%D8%B3%D9%88%D9%8A%D9%82%D9%8A%D8%A9-%D9%85%D8%A4%D8%AB%D8%B1%D8%A9%D8%9F/ https://academy.hsoub.com/questions/11-%D9%83%D9%8A%D9%81-%D9%8A%D9%85%D9%83%D9%86-%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%84%D8%BA%D9%8A%D8%B1-%D8%A7%D9%84%D9%85%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D9%86-%D8%9F/ https://academy.hsoub.com/questions/267-%D9%85%D8%A7-%D9%87%D9%8A-%D9%84%D8%BA%D8%A9-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A7%D9%84%D8%A3%D9%81%D8%B6%D9%84-%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%A7%D9%84%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA%D8%9F/ https://academy.hsoub.com/questions/288-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%B7%D8%B1%D9%82-%D8%A7%D9%84%D9%85%D9%8F%D8%B3%D8%AA%D8%AE%D8%AF%D9%85%D8%A9-%D9%81%D9%8A-%D8%AA%D8%B3%D8%B1%D9%8A%D8%B9-%D8%AA%D8%AD%D9%85%D9%8A%D9%84-%D8%A7%D9%84%D9%85%D9%88%D8%A7%D9%82%D8%B9%D8%9F/ https://academy.hsoub.com/questions/364-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D9%85%D8%AF%D8%A9-%D8%A7%D9%84%D9%84%D8%A7%D8%B2%D9%85%D8%A9-%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9%D8%9F/ https://academy.hsoub.com/questions/1193-%D9%85%D8%A7-%D9%87%D9%8A-%D9%84%D8%BA%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AE%D8%AF%D9%85%D8%A9-%D9%81%D9%8A-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A5%D8%B6%D8%A7%D9%81%D8%A7%D8%AA-%D9%84%D9%85%D8%AA%D8%B5%D9%81%D8%AD%D8%A7%D8%AA-%D8%A7%D9%84%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA%D8%9F/ https://academy.hsoub.com/questions/268-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A3%D8%AF%D9%88%D8%A7%D8%AA-%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%B7%D9%84%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%84%D8%A7%D8%B2%D9%85%D8%A9-%D9%84%D8%AA%D8%B9%D8%B1%D9%8A%D8%A8-%D9%82%D8%A7%D9%84%D8%A8-wordpress%D8%9F/ https://academy.hsoub.com/questions/524-%D9%83%D9%8A%D9%81-%D8%A3%D8%BA%D9%8A%D9%91%D8%B1-%D8%A7%D8%B3%D9%85-%D8%AD%D9%82%D9%84-%D9%81%D9%8A-%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-mysql%D8%9F/ https://academy.hsoub.com/questions/269-%D9%85%D8%A7-%D9%87%D9%88-%D8%A3%D9%81%D8%B6%D9%84-%D9%83%D8%AA%D8%A7%D8%A8-%D9%8A%D8%AC%D8%A8-%D9%82%D8%B1%D8%A7%D8%A1%D8%AA%D9%87-%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D9%84%D8%BA%D8%A9-%D8%AC%D8%A7%D9%81%D8%A7-%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-javascript%D8%9F/ https://academy.hsoub.com/questions/8235-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D8%A7%D9%85%D8%AC-%D8%A7%D9%84%D8%AA%D9%8A-%D9%8A%D8%AC%D8%A8-%D8%AA%D8%B9%D9%84%D9%85%D9%87%D8%A7-%D9%84%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D9%81%D9%8A%D9%84%D9%85-%D8%B1%D8%B3%D9%88%D9%85-%D9%85%D8%AA%D8%AD%D8%B1%D9%83%D8%A9-3d-%D9%85%D8%AB%D9%84-%D9%81%D9%8A%D9%84%D9%85-ice-age%D8%9F/ https://academy.hsoub.com/questions/8034-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A3%D8%A8%D8%B9%D8%A7%D8%AF-%D8%A7%D9%84%D9%85%D8%AB%D8%A7%D9%84%D9%8A%D8%A9-%D9%84%D8%AA%D8%B5%D9%85%D9%8A%D9%85%D8%A7%D8%AA-%D8%A7%D9%84%D9%83%D8%B1%D9%88%D8%AA-%D9%88%D8%A7%D9%84%D8%A8%D9%88%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%D8%9F/ https://academy.hsoub.com/questions/8033-%D9%83%D9%8A%D9%81-%D9%84%D9%8A-%D8%A3%D9%86-%D8%A7%D8%AE%D8%AA%D8%A8%D8%B1-%D9%86%D9%81%D8%B3%D9%8A-%D9%81%D9%8A-%D8%A7%D9%84%D8%AA%D8%B5%D9%85%D9%8A%D9%85-%D9%83%D9%85%D8%A8%D8%AA%D8%AF%D8%A6%D8%9F/ https://academy.hsoub.com/questions/7871-%D9%85%D8%A7-%D9%87%D9%8A-%D9%85%D8%B9%D8%A7%D9%8A%D9%8A%D8%B1-%D8%AA%D8%AD%D8%AF%D9%8A%D8%AF-%D8%A7%D9%84%D8%B3%D8%B9%D8%B1-%D9%81%D9%8A-%D8%A7%D9%84%D8%AA%D8%B5%D9%85%D9%8A%D9%85%D8%9F/ https://academy.hsoub.com/questions/7608-%D9%85%D8%A7-%D9%87%D9%88-%D8%A7%D9%84%D8%A7%D9%86%D9%81%D9%88%D8%AC%D8%B1%D8%A7%D9%81%D9%8A%D9%83-%D9%88%D9%85%D8%A7-%D8%A3%D9%81%D8%B6%D9%84-%D8%A7%D9%84%D8%A8%D8%B1%D8%A7%D9%85%D8%AC-%D9%84%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%AA%D8%B5%D8%A7%D9%85%D9%8A%D9%85%D9%87%D8%9F/ https://academy.hsoub.com/questions/7377-%D9%84%D9%85%D8%A7%D8%B0%D8%A7-%D8%AA%D8%B8%D9%87%D8%B1-%D8%A7%D9%84%D8%B5%D9%88%D8%B1%D8%A9-%D9%85%D8%A8%D9%83%D8%B3%D9%84%D8%A9-%D9%81%D9%8A-%D8%A7%D9%84%D9%84%D8%A7%D8%B3%D8%AA%D8%B1%D9%8A%D8%AA%D9%88%D8%B1%D8%9F/ https://academy.hsoub.com/questions/7349-%D9%87%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%B6%D8%B1%D9%88%D8%B1%D9%8A-%D8%A7%D8%AA%D9%82%D8%A7%D9%86-%D9%85%D9%87%D8%A7%D8%B1%D8%A9-%D8%A7%D9%84%D8%B1%D8%B3%D9%85-%D8%A8%D8%A7%D9%84%D9%86%D8%B3%D8%A8%D8%A9-%D9%84%D9%84%D9%85%D8%B5%D9%85%D9%85%D8%9F/ https://academy.hsoub.com/questions/7157-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D8%A6%D9%84-%D8%A7%D9%84%D9%85%D8%AC%D8%A7%D9%86%D9%8A%D8%A9-%D9%84%D9%84%D9%81%D9%88%D8%AA%D9%88%D8%B4%D9%88%D8%A8%D8%9F/ https://academy.hsoub.com/questions/8229-%D9%87%D9%84-%D9%85%D9%86-%D8%A7%D9%84%D8%A3%D9%81%D8%B6%D9%84-%D9%84%D9%8A-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-docker-%D9%83%D9%85%D8%B7%D9%88%D8%B1-php-%D8%A3%D9%85-%D8%A7%D9%84%D8%A5%D9%83%D8%AA%D9%81%D8%A7%D8%A1-%D8%A8%D8%A7%D9%84%D9%80-virtualbox%D8%9F/ https://academy.hsoub.com/questions/8186-%D9%87%D9%84-%D9%8A%D9%81%D8%B6%D9%84-%D8%A5%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-nodejs-%D8%A8%D8%AF%D9%84%D8%A7%D9%8B-%D9%85%D9%86-nginx-%D9%88-apache%D8%9F/ https://academy.hsoub.com/questions/7365-%D9%85%D8%A7-%D9%87%D9%88-%D8%A3%D9%81%D8%B6%D9%84-%D9%86%D8%B8%D8%A7%D9%85-%D9%84%D9%8A%D9%86%D9%83%D8%B3-%D9%84%D9%84%D8%B3%D9%8A%D8%B1%D9%81%D8%B1%D8%A7%D8%AA%D8%9F/ https://academy.hsoub.com/questions/7131-%D9%87%D9%84-%D8%A7%D9%84%D8%A3%D9%81%D8%B6%D9%84-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-cpanel-%D8%A3%D9%85-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-apache-php-mysql-%D9%8A%D8%AF%D9%88%D9%8A%D8%A7/ https://academy.hsoub.com/questions/7123-%D9%85%D8%A7%D9%87%D9%8A-%D8%A7%D9%84%D9%85%D9%87%D8%A7%D8%B1%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%B7%D9%84%D9%88%D8%A8%D8%A9-%D9%84%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%AE%D8%A7%D8%AF%D9%85-vps%D8%9F/ https://academy.hsoub.com/questions/7077-%D9%83%D9%8A%D9%81-%D8%A3%D8%AE%D8%AA%D8%A7%D8%B1-%D8%B4%D8%B1%D9%83%D8%A9-%D8%A7%D8%B3%D8%AA%D8%B6%D8%A7%D9%81%D8%A9-%D9%85%D9%86%D8%A7%D8%B3%D8%A8%D8%A9%D8%9F/ https://academy.hsoub.com/questions/6998-%D9%83%D9%8A%D9%81-%D8%A3%D8%B6%D8%B9-%D8%AD%D8%AF%D9%88%D8%AF-%D9%84%D8%B3%D8%B1%D8%B9%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%A5%D9%86%D8%AA%D8%B1%D9%86%D8%AA-%D8%B9%D9%84%D9%89-%D8%B3%D9%8A%D8%B1%D9%81%D8%B1-%D8%A3%D9%88%D8%A8%D9%88%D9%86%D8%AA%D9%88%D8%9F/ https://academy.hsoub.com/questions/6721-%D9%83%D9%8A%D9%81-%D8%A3%D8%B9%D9%85%D9%84-%D9%86%D8%B3%D8%AE%D8%A9-%D8%A7%D8%AD%D8%AA%D9%8A%D8%A7%D8%B7%D9%8A%D8%A9-%D9%85%D9%86-%D8%AE%D8%A7%D8%AF%D9%88%D9%85-vps-%D9%8A%D8%B9%D9%85%D9%84-%D8%A8%D9%86%D8%B8%D8%A7%D9%85-%D8%AF%D9%8A%D8%A8%D9%8A%D8%A7%D9%86%D8%9F/ https://academy.hsoub.com/questions/7243-%D9%85%D8%A7-%D9%81%D8%A7%D8%A6%D8%AF%D8%A9-%D8%B1%D8%AE%D8%B5-%D8%A7%D9%84%D8%A8%D8%B1%D8%A7%D9%85%D8%AC%D8%9F/ https://academy.hsoub.com/questions/7169-%D9%83%D9%8A%D9%81-%D8%A3%D8%B4%D9%81%D9%91%D8%B1-%D8%B3%D9%8A%D8%AF%D9%8A-%D8%A8%D8%AD%D9%8A%D8%AB-%D8%A3%D9%85%D9%86%D8%B9-%D8%B9%D9%85%D9%84%D9%8A%D8%A9-%D8%A7%D9%84%D9%86%D8%B3%D8%AE-%D9%85%D9%86%D9%87%D8%9F/ https://academy.hsoub.com/questions/6735-%D9%87%D9%84-%D9%8A%D9%85%D9%83%D9%86-%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1-%D9%83%D9%84%D9%85%D8%A9-%D9%85%D8%B1%D9%88%D8%B1-%D9%88%D9%8A%D9%86%D8%AF%D9%88%D8%B2-%D8%AF%D9%88%D9%86-%D9%85%D8%B9%D8%B1%D9%81%D8%A9-%D8%A7%D9%84%D9%82%D8%AF%D9%8A%D9%85%D8%A9-%D8%A3%D9%88-%D9%81%D8%B1%D9%85%D8%AA%D8%A9-%D8%A7%D9%84%D8%AD%D8%A7%D8%B3%D9%88%D8%A8%D8%9F/ https://academy.hsoub.com/questions/145-%D9%83%D9%8A%D9%81-%D9%8A%D9%85%D9%83%D9%86%D9%86%D9%8A-%D8%AA%D9%86%D8%B2%D9%8A%D9%84-%D9%85%D9%88%D9%82%D8%B9-%D9%88%D9%8A%D8%A8-%D8%A8%D8%A7%D9%84%D9%83%D8%A7%D9%85%D9%84-%D9%85%D9%86-%D8%B3%D8%B7%D8%B1-%D8%A7%D9%84%D8%A3%D9%88%D8%A7%D9%85%D8%B1%D8%9F/ https://academy.hsoub.com/questions/4058-%D9%87%D9%84-%D9%8A%D8%AA%D9%88%D9%81%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D8%AC-%D9%84%D8%AA%D8%B9%D9%84%D9%8A%D9%85-%D8%A7%D9%84%D8%B7%D8%A8%D8%A7%D8%B9%D8%A9-%D8%A8%D8%A7%D9%84%D9%84%D9%85%D8%B3%D8%9F/ https://academy.hsoub.com/questions/3308-%D9%83%D9%8A%D9%81-%D8%A3%D8%B3%D8%AC%D9%91%D9%84-%D9%81%D9%8A%D8%AF%D9%8A%D9%88-%D9%84%D8%B3%D8%B7%D8%AD-%D8%A7%D9%84%D9%85%D9%83%D8%AA%D8%A8-%D9%81%D9%8A-%D9%84%D9%8A%D9%86%D9%83%D8%B3%D8%9F/ https://academy.hsoub.com/questions/4353-%D9%85%D8%A7-%D9%87%D9%8A-%D8%A3%D9%81%D8%B6%D9%84-%D8%A8%D8%B1%D8%A7%D9%85%D8%AC-%D8%A7%D9%84%D9%82%D8%B1%D8%A7%D8%A1%D8%A9-%D8%A7%D9%84%D9%84%D9%8A%D9%84%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D8%AA%D9%88%D9%81%D8%B1%D8%A9-%D8%B9%D9%84%D9%89-%D8%A3%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF%D8%9F/ https://academy.hsoub.com/questions/4866-%D9%83%D9%8A%D9%81-%D8%A3%D8%AD%D8%B0%D9%81-%D8%A7%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-%D9%85%D9%86-%D8%AF%D8%A7%D8%AE%D9%84-%D9%86%D8%B8%D8%A7%D9%85-%D8%A7%D9%84%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-%D9%88%D9%8A%D9%86%D8%AF%D9%88%D8%B2-10%D8%9F/ https://academy.hsoub.com/questions/4864-%D9%87%D9%84-%D9%87%D9%86%D8%A7%D9%84%D9%83-%D8%B4%D9%87%D8%A7%D8%AF%D8%A7%D8%AA-%D9%81%D9%8A-%D9%85%D8%AC%D8%A7%D9%84-%D8%A7%D9%84%D8%AA%D8%AD%D9%82%D9%8A%D9%82-%D8%A7%D9%84%D8%AC%D9%86%D8%A7%D8%A6%D9%8A-%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%9F/ https://academy.hsoub.com/questions/4794-%D9%85%D8%A7-%D9%87%D9%8A-%D8%B4%D9%87%D8%A7%D8%AF%D8%A9-ceh%D8%9F/ https://academy.hsoub.com/questions/5835-%D9%85%D8%A7%D9%87%D9%8A-%D8%A7%D9%84%D8%B4%D9%87%D8%A7%D8%AF%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D8%B7%D9%84%D9%88%D8%A8%D8%A9-%D9%81%D9%8A-%D9%85%D8%AC%D8%A7%D9%84-%D8%A7%D9%84%D8%B4%D8%A8%D9%83%D8%A7%D8%AA%D8%9F/ https://academy.hsoub.com/questions/4839-%D9%85%D8%A7-%D9%87%D9%8A-%D8%B4%D9%87%D8%A7%D8%AF%D8%A9-oscp%D8%9F/ https://academy.hsoub.com/questions/6400-%D9%87%D9%84-%D9%87%D9%86%D8%A7%D9%83-%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1%D8%A7%D8%AA-%D9%88%D8%B4%D9%87%D8%A7%D8%AF%D8%A7%D8%AA-seo%D8%9F/ https://academy.hsoub.com/questions/3089-%D9%85%D8%A7%D8%B0%D8%A7-%D9%8A%D9%82%D8%B5%D8%AF-%D8%A8%D9%80-mcpd%D8%9F/ https://academy.hsoub.com/questions/6674-%D9%87%D9%84-%D9%8A%D8%AC%D8%A8-%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9-%D8%A7%D9%84%D8%A7%D9%85%D8%AA%D8%AD%D8%A7%D9%86-%D9%83%D8%A7%D9%85%D9%84%D9%8B%D8%A7-%D9%85%D9%86-%D9%82%D8%A8%D9%84-%D8%AD%D8%A7%D9%85%D9%84%D9%8A-%D8%B4%D9%87%D8%A7%D8%AF%D8%A7%D8%AA-ccna-%D8%A7%D9%84%D9%82%D8%AF%D9%8A%D9%85%D8%A9%D8%9F/ https://academy.hsoub.com/questions/5140-%D9%87%D9%84-%D9%85%D9%86-%D9%86%D8%B5%D8%A7%D8%A6%D8%AD-%D9%84%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1-rhcsa%D8%9F/ https://academy.hsoub.com/files/19-%D9%85%D8%AF%D8%AE%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%AA%D8%B3%D9%88%D9%8A%D9%82/ https://academy.hsoub.com/files/18-%D8%A7%D9%84%D8%AF%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D8%B9%D9%85%D9%84%D9%8A-%D8%A5%D9%84%D9%89-%D9%82%D9%88%D8%A7%D8%B9%D8%AF-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-postgresql/ https://academy.hsoub.com/files/17-%d9%85%d8%af%d8%ae%d9%84-%d8%a5%d9%84%d9%89-%d8%a7%d9%84%d8%b0%d9%83%d8%a7%d8%a1-%d8%a7%d9%84%d8%a7%d8%b5%d8%b7%d9%86%d8%a7%d8%b9%d9%8a-%d9%88%d8%aa%d8%b9%d9%84%d9%85-%d8%a7%d9%84%d8%a2%d9%84%d8%a9/ https://academy.hsoub.com/files/15-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D9%84%D8%BA%D8%A9-%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86/ /pages/write-for-us/write-for-us/ /pages/teach/ https://wiki.hsoub.com https://academy.hsoub.com/register/ https://academy.hsoub.com/discover/ https://academy.hsoub.com/ /pages/about/ /pages/faq/ /pages/write-for-us/ /pages/teach/ /pages/terms/ /pages/privacy/ https://support.academy.hsoub.com http://www.hsoub.com http://creativecommons.org/licenses/by-nc-sa/4.0/ # https://academy.hsoub.com/login/ https://academy.hsoub.com/register/ # # https://academy.hsoub.com https://academy.hsoub.com/discover/ https://academy.hsoub.com/search/ # # http://twitter.com/HsoubAcademy http://www.facebook.com/HsoubAcademy https://www.youtube.com/channel/UCJv37tcBvJlBF2MoVMRMvbQ https://academy.hsoub.com/programming/general/%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-r662/ https://wiki.hsoub.com # # https://academy.hsoub.com/# https://academy.hsoub.com/entrepreneurship/ https://academy.hsoub.com/freelance/ https://academy.hsoub.com/marketing/ https://academy.hsoub.com/programming/ https://academy.hsoub.com/design/ https://academy.hsoub.com/devops/ https://academy.hsoub.com/apps/ https://academy.hsoub.com/certificates/ # # https://academy.hsoub.com/questions/ https://academy.hsoub.com/questions/c5-entrepreneurship/ https://academy.hsoub.com/questions/c8-freelance/ https://academy.hsoub.com/questions/c7-marketing/ https://academy.hsoub.com/questions/c3-programming/ https://academy.hsoub.com/questions/c4-design/ https://academy.hsoub.com/questions/c6-devops/ https://academy.hsoub.com/questions/c9-apps/ https://academy.hsoub.com/questions/c10-certificates/ # # https://academy.hsoub.com/files/ https://academy.hsoub.com/files/c2-entrepreneurship/ https://academy.hsoub.com/files/c3-freelance/ https://academy.hsoub.com/files/c4-marketing/ https://academy.hsoub.com/files/c5-programming/ https://academy.hsoub.com/files/c6-design/ https://academy.hsoub.com/files/c7-devops/ # # https://academy.hsoub.com/store/ https://academy.hsoub.com/store/c1-%D8%AF%D9%88%D8%B1%D8%A7%D8%AA-%D8%AA%D8%B9%D9%84%D9%8A%D9%85%D9%8A%D8%A9/ # # https://academy.hsoub.com/store/gift-cards/ https://academy.hsoub.com/store/redeem/
  15. Windows Machine: قم بفتح التيرمينال وقم بتنفيذ السطر التالي: pip install beautifulsoup4 Linux Machine: لتثبيت bs4 على Debian أو Ubuntu linux باستخدام مدير حزمة النظام ، قم بتشغيل الأمر التالي: $sudo apt-get install python-bs4 (for python 2.x) $sudo apt-get install python3-bs4 (for python 3.x) كما يمكنك تثبيت bs4 باستخدام easy_install أو pip (في حالة وجود مشكلة في التثبيت باستخدام برنامج حزم النظام). $easy_install beautifulsoup4 $pip install beautifulsoup4 هذا ما تحتاجه بالنسبة لتحميل الحزمة بالنسبة للأنظمة المختلفة. Installing a Parser: الآن بالنسبة لتثبيت المحلل، فبشكل افتراضي ، يدعم Beautiful Soup محلل HTML المضمن في مكتبة Python ، ولكنه يدعم أيضاً العديد من محللات python الخارجية مثل lxml parser أو html5lib parser. ولتثبيتهم: Linux Machine: $apt-get install python-lxml $apt-get insall python-html5lib Windows Machine: $pip install lxml $pip install html5lib بشكل عام ، يُفضل استخدام lxml لأنه أسرع.
  16. إضافةً لما تم ذكره من خلال سامح، هنا تجد الفروق الرئيسية: 1. تتجلى الوظيفة الرئيسية ل Linker في توليد ملفات قابلة للتنفيذ (executable files). في حين أن الهدف الرئيسي من Loader هو تحميل الملفات القابلة للتنفيذ إلى الذاكرة الرئيسية. 2. يأخذ الرابط linker مدخلات كود الكائن الذي تم إنشاؤه بواسطة المترجم / المجمّع. ويقوم المُحمل loader بأخذ مدخلات الملفات القابلة للتنفيذ التي تم إنشاؤها بواسطة الرابط linker. 3. يمكن تعريف الارتباط Linking على أنه عملية دمج أجزاء مختلفة من الأكواد وكود المصدر للحصول على كود قابل للتنفيذ (executable code). ويمكن تعريف التحميل Loading على أنه عملية تحميل أكواد قابلة للتنفيذ إلى الذاكرة الرئيسية من أجل التنفيذ. 4. الروابط من نوعين: محرر الروابط والرابط الديناميكي. اللوادر من 4 أنواع: مطلق Absolute ، نقل Relocating، ربط مباشر Direct Linking، تمهيد Bootstrap. 5. استخدام آخر للرابط هو الجمع بين جميع وحدات الكائن. بينما الُمحمل يساعد في تخصيص العنوان address للأكواد/ الملفات القابلة للتنفيذ. 6. الرابط مسؤول أيضًا عن ترتيب الكائنات في مفضاء عنونةالبرنامج (address space). والمُحمل مسؤول أيضاً عن ضبط المراجع (references) المستخدمة داخل البرنامج.
  17. الطريقة1: نقوم بتعريف و تهيئة متغير يمثل كلمة على فارغ (سنسميه word )، ثم نمر على كل المحارف في السلسلة ، ونختبر فيما إذا كان المحرف الحالي عبارة عن مسافة فارغة، فهذا يعني أننا وصلنا لنهاية الكلمة، فنطبعها، ونقوم بضبط word على ""، وإلا فإننا نضيف المحرف الحالي إلى word. #include <iostream> using namespace std; void split(string str) { string word = ""; for (auto c : str) { if (c == ' ') { cout << word << endl; word = ""; } else { word = word + c; } } cout << word << endl; } int main() { string str = "One Two Three Four"; split(str); return 0; } /* One Two Three Four */ الطريقة2: من خلال استخدام الدالة strtok. التي لها الشكل التالي: strtok(char* str, const char* delim); حيث أن الوسيط الأول يمثل السلسلة التي نريد الحصول على الرموز منها. والثاني حرف التحديد ، أي الحرف الذي يفصل بين الرموز. وتستخدم هذه الدالة للقيام بعملية tokenizing (أي فصل النصوص إلى وحدات محرفية أو كلمات) بناءاً على delimiter محدد. ويقوم بإرجاع مؤشر إلى ال token التالي إذا كان موجوداً، وإذا لم يكن هناك token تالي موجوداً فإنه يقوم بإرجاع NULL. وبالتالي للحصول على جميع ال tokens (في حالتنا الكلمات)، ستكمن الفكرة في استدعاء هذه الدالة في حلقة. #include <bits/stdc++.h> using namespace std; void split(char str[]) { // token تعيد أول char *token = strtok(str, " "); // str[] استمر في طباعة الكلمات طالما يوجد أحد المحددات في while (token != NULL) { printf("%s\n", token); // طباعة الكلمة والنزول سطر token = strtok(NULL, " "); } } int main() { char str[] = "One Two Three Four"; split(str); return 0; } /* One Two Three Four */
  18. يعتمد حجم وعدد المرشحات على مدى تعقيد الصورة وتفاصيلها. بالنسبة للصور الصغيرة والبسيطة (مثل Mnist) ، ستحتاج إلى مرشحات 3x3 أو 5x5 وبعضها (4 ، ثم 8 ، حتى 16) لاكتشاف الخطوط المستقيمة والمنحنيات والأشكال المائلة وربما بعض درجات الألوان ؛ بينما بالنسبة للصور الأكبر (مثل الوجوه أو المناظر الطبيعية) ، قد تكون هناك حاجة إلى حقل تقبلي أكبر مع مرشحات 7 × 7 أو 9 × 9 أو 11 × 11 ، والبدء بـ 32 ثم 64 وما إلى ذلك لتمييز المزيد من الأشكال والأنسجة. ونستخدم مضاعفات العدد 2 لعدد المرشحات لأن المرشحات ترتبط بخرائط الميزات التي سيتم تسويتها في النهاية، لذلك فإن الأمر يتعلق بتنظيم ذاكرة الوصول العشوائي بشكل أفضل. أنا بالنسبة لقيم هذه المرشحات فالشبكات العصبية التلافيفية هي (عادةً) طرق خاضعة للإشراف للتعرف على الصور / الأشياء. هذا يعني أنك بحاجة إلى تدريب CNN باستخدام مجموعة من الصور المصنفة. وهذا يسمح بتحسين أوزان المرشحات التلافيفية، وبالتالي فإن المرشحات تشكل نفسها، بحيث تسعى لتقليل الخطأ. إذاً يمكنك تهيئتها بقيم عشوائية، والسماح للتعلم بالقيام بالعمل (خوارزمية Gradient descent). كما يمكنك بالطبع تعريف مرشحات بقيم محددة (اسخدام مرشحات مثل سوبل وغيره) لكن لاداعي لذلك.
  19. حاول أن تقوم بتثبيت التطبيق من موقع مثل غوغل بلاي. ثم حاول تثبيته من جديد. وإذا لم ينجح الأمر فحاول تثبيت إصدار آخر منه. وإذا لم ينجح الأمر فالمشكلة تكمن فالمحاكي، فهناك الكثير من التطبيقات التي لاينجح تثبيتها أو فتحها أو العمل عليها. وإذا كنت مضطراً يمكنك أن تجرب تثبيت محاكي آخر.
  20. سبق وأجبتك هنا أخي الكريم... تحتاج إلى محاكي آندرويد، بعد ذلك قم بتحميل تطبيقك وتثبيته.
  21. نعم كما ذكرت فإن تحويل هوف هو الأفضل حيث يمكنه اكتشاف أي خط يمكن تمثيله بمعادلة رياضية، ويمكنه اكتشاف الشكل حتى لو كان يحتوي على بعض الضجيج والتقطعات. في opencv هذه الخوارزمية يمكنك أن تقوم بتطبيقها من خلال التابع cv2.HoughLines ويعيد لنا هذا التابع مصفوفة لقيم (p,θ )، حيث أن p وثيتا هما المعاملات التي تمثل الخط. انظر إلى المثال التالي: import cv2 from google.colab.patches import cv2_imshow import numpy as np # قراءة الصورة img = cv2.imread('/content/4wQjD.jpg') # تحويلها للصيغة الرمادية gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # تطبيق المرشح كاني edges = cv2.Canny(gray,50,150,apertureSize = 3) # تطبيق تحويل هوف lines = cv2.HoughLines(edges,1,np.pi/180,200) # رسم الخطوط for rho,theta in lines[0]: a = np.cos(theta) b = np.sin(theta) x0 = a*rho y0 = b*rho x1 = int(x0 + 1000*(-b)) y1 = int(y0 + 1000*(a)) x2 = int(x0 - 1000*(-b)) y2 = int(y0 - 1000*(a)) cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2) cv2_imshow(edges) cv2_imshow(img) حيث أن المتغير الأول يمثل صورة الدخل بالصيغة الثنائية. لذالك نستخدم مكتشف حواف مثل كاني أو نطبق التعتيب. أما ثاني وثالث متغير فهما p وثيتا، ورابع متغير هو العتبة وهي تعني أقل صوت يجب أن نحصل عليه لنعتبره خط (عدد الأصوات يعتمد على عدد النقاط على الخط وهذا يعني أصغر طول للخط الذي يجب أن يتم اكتشافه). النتيجة: كما يمكنك استخدام تحويل هاف الاحتمالي cv2.HoughLinesP الذي يعتبر تحسين لتحويل هاف العادي. ويملك وسيطين إضافيين عن التابع السابق وهما minLineLength الذي يمثل أقل طول للخط، حيث يتجاهل كل خط أقل من هذه القيمة. و maxLineGap الذ يمثل المساحة العظمى المسموحة بين أجزاء الخط لاعتباره خطاً واحداً. ويعيد لنا بداية كل خط ونهايته مباشرةً على عكس الطريقة السابقة التي كانت تعطينا معاملات الخطوط فقط. وبالتالي الصعوبة في إيجاد كل النقط. مثال: from google.colab.patches import cv2_imshow import numpy as np import cv2 gray = cv2.imread('/content/4wQjD.jpg') edges = cv2.Canny(gray,50,150,apertureSize = 3) cv2.imwrite('edges-50-150.jpg',edges) le = cv2.HoughLinesP(image=edges,rho=1,theta=np.pi/180, threshold=100, lines=np.array([]), minLineLength=100, maxLineGap=80) x,_,_ = le.shape for i in range(x): cv2.line(gray, (lines[i][0][0], lines[i][0][1]), (lines[i][0][2], lines[i][0][3]), (0, 0, 255), 3, cv2.LINE_AA) cv2_imshow(edges) cv2_imshow(gray) النتيجة:
  22. يمكنك القيام بذلك من خلال استخدام الدالة fig.get_size_inches لإعطاء حجمه بالبوصة ثم ضربها بقيمة ال dpi للشكل فينتج حجم الشكل بالبكسل، مثال: import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots() fig.suptitle('matplotlib.figure.Figure.delaxes() \ function Example\n\n', fontweight ="bold") size = fig.get_size_inches()*fig.dpi print("size in pixels:",size) # الخرج # size in pixels: [432. 288.] في حال كان لديك أكثر من شكل فقط قم بالتعديل التالي: fig = plt.gcf() size = fig.get_size_inches()*fig.dpi أو بشكل التالي: import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots() fig.suptitle('matplotlib.figure.Figure.size in pixels \ Example\n\n', fontweight ="bold") bbox = fig.get_window_extent().transformed(fig.dpi_scale_trans.inverted()) width, height = bbox.width*fig.dpi, bbox.height*fig.dpi print(bbox) print(width) print(height) """ Bbox(x0=0.0, y0=0.0, x1=6.0, y1=4.0) 432.0 288.0 """
  23. يمكنك استخدام الدالة fig.delaxes (أو plt.delaxes) حيث نمرر لها ال axes الذي نريد حذفه فقط. انظر للمثال التالي: import matplotlib.pyplot as plt import numpy as np # subplots تعريف fig, ax = plt.subplots() # إنشاء رسم بياني ax.plot([1, 2, 3]) fig.suptitle('matplotlib.figure.Figure.delaxes() \ function Example\n\n', fontweight ="bold") # حذفه #fig.delaxes(ax) plt.show() مثال آخر في حالة كان لديك أكثر من axes: import matplotlib.pyplot as plt import numpy as np # subplots تعريف fig, axs = plt.subplots(1,3) # إنشاء رسم بياني axs[0].plot([1,2],[3,4]) axs[1].plot([5,6],[7,5]) axs[2].plot([0,1],[2,3]) plt.tight_layout() plt.show() والنتيجة ستكون: الآن لحذف ال axes الثاني: import matplotlib.pyplot as plt import numpy as np # subplots تعريف fig, axs = plt.subplots(1,3) # إنشاء رسم بياني axs[0].plot([1,2],[3,4]) axs[1].plot([5,6],[7,5]) axs[2].plot([0,1],[2,3]) # نضيف الدالة ونمرر لها رقمه fig.delaxes(axs[1]) plt.draw() plt.tight_layout() plt.show() النتيجة:
  24. import cv2 as cv image = cv.imread("C:/temp/1.png") gray_image= cv.cvtColor(image,cv2.COLOR_BGR2GRAY) sift = cv.SIFT() kp = sift.detect(gray_image,None) image=cv.drawKeypoints(gray_image,kp) cv.imshow(image) cv.waitKey() cv.destroyAllWindows() والنتيجة: بدايةً علينا أن نقوم ببناء جسم SIFT، ثم نقوم بتمرير البيانات المختلفة إليه (اختياري). أولاً نقوم بقراءة الصورة وتحويلها للصيغة الرمادية: image = cv.imread("C:/temp/1.png") gray_image= cv.cvtColor(image,cv2.COLOR_BGR2GRAY) ثم نقوم بإنشاء جسم خوارزمية SIFT وذلك من خلال التابع cv2.SIFT: sift = cv.SIFT() ثم نستخدم التابع sift.detect لإيجاد النقاط الرئيسية في الصورة. يمكنك تمرير قناع إذا أردت البحث عنها فقط في جزء محدد. كل نقطة رئيسية لها تركيب خاص وهي تحوي على العديد من الخصائص مثل الإحداثيات x و y، وحجم الجوار ذو المعنى، والزاوية التي تحدد الاتجاه، والاستجابة التي تحدد قوة النقاط الرئيسية. kp = sift.detect(gray_image,None) أيضاً استخدمنا التابع: image=cv.drawKeypoints(gray_image,kp) الذي يقوم برسم دوائر صغيرة في مواقع النقاط الرئيسية. وإذا مررت cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS له، فسوف يرسم دائرة بحجم النقطة الأساسية وسيعرض أيضاً الاتجاه. أي: img=cv2.drawKeypoints(gray,kp,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) النتيجة ستكون: الآن لحساب الوصف يمكننا القيام بذلك بطريقتين: 1. في حالة أوجدنا النقاط الرئيسية (كما فعلنا) ،استخدم الدالة sift.compute التي تحسب الوصف من خلال النقاط الرئيسية. kp,des = sift.compute(gray_image,kp) 2. إذا لم تقوم بإيجاد النقاط الرئيسية، عندها يمكنك إيجاد النقاط الرئيسية+الوصف من خلال الدالة sift.detectAndCompute: sift = cv2.SIFT() kp, des = sift.detectAndCompute(gray_image,None) هنا kp تمثل مصفوفة بالنقاط الرئيسية، و des تمثل مصفوفة من الشكل (عدد النقاط * 28) .
  25. يمكنك استخدام الدالة get_color بالشكل التالي: import numpy as np import matplotlib.pyplot as plt x = np.arange(15) y = np.arange(15) p = plt.plot(x,y, x,y*2, x,y*3) print("The color of the first drawing is: "+p[0].get_color()) # لون الشكل الأول print("The color of the second drawing is: "+p[1].get_color()) # لون الشكل الثاني print("The color of the third drawing is: "+p[2].get_color()) # الثالث # الخرج: """ The color of the first drawing is: #1f77b4 The color of the second drawing is: #ff7f0e The color of the third drawing is: #2ca02c """
×
×
  • أضف...