-
المساهمات
1068 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
43
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Ali Haidar Ahmad
-
يمكنك استخدام wup_similarity لقياس التشابه بين الكلمات، حيث يحسب الترابط من خلال النظر في أعماق مجموعتي synsets للكلمتين (يحسب مدى تشابه معاني الكلمات وموقعها في شجرة ال hypernym) إضافة إلى ال LCS بين الكلمتين (السلف المشترك الأكثر شيوعاً لمفهومين موجودان في أنطولوجية محددة أو بمعنى آخر القواسم المشتركة بين زوج من المفاهيم. على سبيل المثال ال LCS لكل من القط والكلب في wordnet هو حيوان ثديي). الwup_similarity تعتمد على المعادلة التالية: WuPalmer=2*depth(lcs(s1,s2))/(depth(s1)+depth(s2)) والنتيجة تكون بين 0 و 1 ولايمكن أن تكون 0 لأن عمق LCS لا يساوي صفر (عمق جذر التصنيف واحد). مثال: # wordnet استيراد from nltk.corpus import wordnet # لكل من الكلمتين synsets استخراج ال syn1 = wordnet.synsets('cat')[0] syn2 = wordnet.synsets('dog')[0] print ("cat name : ", syn1.name()) print ("dog name : ", syn2.name()) # حساب التشابه syn1.wup_similarity(syn2) """ cat name : cat.n.01 dog name : dog.n.01 0.8571428571428571 """ لاحظ أن نسبة التشابه بين الكلمتين 85% وذلك لوجود العديد من الأشياء المشتركة بينهما. أما لو جربنا على سبيل المثال كلمتي hello و selling سنجد أنها 26% فقط وهذا لأنهما بعيدتين مفاهيمياً: # wordnet استيراد from nltk.corpus import wordnet syn1 = wordnet.synsets('hello')[0] syn2 = wordnet.synsets('selling')[0] print ("hello name : ", syn1.name()) print ("selling name : ", syn2.name()) syn1.wup_similarity(syn2) """ hello name : hello.n.01 selling name : selling.n.01 0.26666666666666666 """
-
توفر لك NLTK الوحدة WordNetLemmatizer التي تحتوي الدالة lemmatize للقيام بماتريده، حيث تأخذ هذه الدالة وسيطين الأول هو الكلمة المطلوبة، والثاني هو ال POST الخاص بها: lemmatize(word: str, pos: str = "n") pos: يمكن أن تكون: "n": اسم "v" فعل "a": صفة adjectives "r": ضمير adverbs "s": satellite adjectives وافتراضياً تكون اسم. مثال: # WordNetLemmatizer استيراد الوحدة from nltk.stem import WordNetLemmatizer # WordNetLemmatizer إنشاء كائن من lz = WordNetLemmatizer() # مع تمرير الكلمة المطلوية lemmatize الآن يمكنك استخدام الدالة print("rocks :", lz.lemmatize("rocks", pos ="n")) print("corpora :", lz.lemmatize("corpora", pos ="n")) # a denotes adjective in "pos" print("better :", lz.lemmatize("better", pos ="a")) """ rocks : rock corpora : corpus better : good """
-
تمنحك NLTK الوحدة PorterStemmer للقيام بعملية ال Stemming تابع معي المثال التالي: # استيراد الوحدات from nltk.stem import PorterStemmer from nltk.tokenize import word_tokenize # PorterStemmer إنشاء غرض من الكلاس ps = PorterStemmer() # تحديد نص text = "Programming, programmers and computer programs are great things" # tokens تقسيم النص إلى tokens = word_tokenize(text) # المرور على كل كلمة for token in tokens: # من الكلاس السابق stem عرض الكلمة وجذرها من خلال الدالة print(str(token), " : " + str(ps.stem(token))) """ Programming : program programmers : programm and : and computer : comput programs : program are : are great : great things : thing """
-
كما ذكرت يمكن استخدام WORDNET في NLTK فبشكل سطحي يمكننا القول أنه قاموس المرادفات، من حيث أنه يجمع الكلمات معاً بناءً على معانيها. وبشكل أكثر دقة يمكنك القول أنها قاعدة بيانات معجمية كبيرة للغة الإنجليزية. الأسماء والأفعال والصفات والظروف مجمعة في مجموعات من المرادفات المعرفية (synsets) ، كل منها يعبر عن مفهوم مميز. عند استخدام الدالة من wordnet وتمرير كلمة لها فإنها ستعطيك مجموعة الكلمات المترادفة synonymous التي تعبر عن نفس المفهوم للكلمة الممررة لها. # wordnet نقوم أولاً باستيراد from nltk.corpus import wordnet # الآن إيجاد الكلمات المترادفة syns = wordnet.synsets("good") # يمكننا طباعة إحدى هذه الكلمات بالشكل التالي print(syns[0].name()) # good.n.01 # ولطباعة الكلمة فقط print(syns[0].lemmas()[0].name()) # good # على الكلمة لتوليد جمل تحتوي هذه الكلمة examples يمكنك أيضاً استخدام الدالة print(syns[0].examples()) # ['for your own good', "what's the good of worrying?"] الآن لتمييز المرادفات والمتضادات لكلمة ستكون lemmas هي المرادفات، وبعد ذلك يمكنك استخدام الدالة .antonyms() للعثور على المتضادات لل lemmas بالشكل التالي: import nltk from nltk.corpus import wordnet synonyms = [] # قائمة سنضع فيها المرادفات antonyms = [] # قائمة سنضع فيها المتضادات # نقوم بالمرور على جميع مرادفات الكلمة for syn in wordnet.synsets("good"): # هي مرادفة lemma كل for l in syn.lemmas(): # نضيفها synonyms.append(l.name()) # نوجد المضاد لها ونخزنه if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) """ {'safe', 'effective', 'beneficial', 'dear', 'right', 'secure', 'unspoilt', 'in_effect', 'skilful', 'honorable', 'skillful', 'unspoiled', 'thoroughly', 'near', 'proficient', 'dependable', 'salutary', 'estimable', 'soundly', 'good', 'commodity', 'practiced', 'serious', 'goodness', 'honest', 'trade_good', 'full', 'upright', 'ripe', 'respectable', 'undecomposed', 'well', 'adept', 'in_force', 'expert', 'just', 'sound'} """ print(set(antonyms)) """ {'evil', 'evilness', 'badness', 'ill', 'bad'} """
-
يمكنك استخدام الدالة sent_tokenize من NLTK لتقسيم النصوص إلى جمل، على سبيل المثال الجملة التالية: INPUT: "Life is like riding a bicycle. To keep your balance, you must keep moving."\ OUTPUT: 'Life is like riding a bicycle.' 'To keep your balance, you must keep moving.' الحل: # استيراد الوحدات import nltk from nltk.tokenize import sent_tokenize # تحديد النص txt = "Life is like riding a bicycle. To keep your balance, you must keep moving." # تقسيم النص إلى جمل sent = sent_tokenize(txt) print(sent) # ['Life is like riding a bicycle.', 'To keep your balance, you must keep moving.']
-
نعم في الحقيقة NLTK هي أفضل من قام بذلك. في NLTK يُشار إلى كل علامة نحوية (أو جزء من الكلام) برمز محدد وهذه هي قائمة الرموز: VB verb, base form take VBD verb, past tense took VBG verb, gerund/present participle taking VBN verb, past participle taken VBP verb, sing. present, non-3d take VBZ verb, 3rd person sing. present takes WDT wh-determiner which WP wh-pronoun who, what WP$ possessive wh-pronoun whose WRB wh-abverb where, when CC coordinating conjunction CD cardinal digit DT determiner EX existential there (like: “there is” … think of it like “there exists”) FW foreign word IN preposition/subordinating conjunction JJ adjective ‘big’ JJR adjective, comparative ‘bigger’ JJS adjective, superlative ‘biggest’ LS list marker 1) MD modal could, will NN noun, singular ‘desk’ NNS noun plural ‘desks’ NNP proper noun, singular ‘Harrison’ NNPS proper noun, plural ‘Americans’ PDT predeterminer ‘all the kids’ POS possessive ending parent‘s PRP personal pronoun I, he, she PRP$ possessive pronoun my, his, hers RB adverb very, silently, RBR adverb, comparative better RBS adverb, superlative best RP particle give up TO to go ‘to‘ the store. UH interjection errrrrrrrm الآن لإيجاد ال POS في النص الخاص بك أو أي نص اتبع الكود التالي فقط: # استيراد الوحدات import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize, sent_tokenize # كلمات التوقف stop_words = set(stopwords.words('english')) # تحديد النص txt = "Life is like riding a bicycle. To keep your balance, you must keep moving." # تقسيم النص إلى جمل sent = sent_tokenize(txt) # هنا لدينا جملتين في النص أعلاه # منها POS نقوم الآن بالمرور على كل جملة ونستخرج ال for i in sent: # لإيجاد الكلمات وعلامات الترقيم word_tokenize نستخدم الآن wordsList = nltk.word_tokenize(i) # نقوم بحذف كلمات التوقف منها wordsList = [w for w in wordsList if not w in stop_words] # تصنيف كل كلمة nltk ونمرر لها الكلمات وستتولى pos_tag نقوم الآن باستدعاء الدالة POS = nltk.pos_tag(wordsList) print(POS) والخرج: [('Life', 'NNP'), ('like', 'IN'), ('riding', 'VBG'), ('bicycle', 'NN'), ('.', '.')] [('To', 'TO'), ('keep', 'VB'), ('balance', 'NN'), (',', ','), ('must', 'MD'), ('keep', 'VB'), ('moving', 'NN'), ('.', '.')]
- 2 اجابة
-
- 1
-
من خلال مكتبة nltk يمكنك القيام بهذه العملية من خلال الدالة word_tokenize بالشكل التالي: # word_tokenize استيراد الدالة from nltk.tokenize import word_tokenize # تحديد النص text = """Stopwords are the English words which does not add much meaning to a sentence. They can safely be ignored without sacrificing the meaning of the sentence. For example, the words like the, he, have etc. Such words are already captured this in corpus named corpus. We first download it to our python environment. """ # استخدامها tokens=word_tokenize(text) print(tokens) """ ['Stopwords', 'are', 'the', 'English', 'words', 'which', 'does', 'not', 'add', 'much', 'meaning', 'to', 'a', 'sentence', '.', 'They', 'can', 'safely', 'be', 'ignored', 'without', 'sacrificing', 'the', 'meaning', 'of', 'the', 'sentence', '.', 'For', 'example', ',', 'the', 'words', 'like', 'the', ',', 'he', ',', 'have', 'etc', '.', 'Such', 'words', 'are', 'already', 'captured', 'this', 'in', 'corpus', 'named', 'corpus', '.', 'We', 'first', 'download', 'it', 'to', 'our', 'python', 'environment', '.'] """ كما يمكنك استخادم الكلاس RegexpTokenizer الذي يمكنك من استخدام التعابير المنتظمة لإنجاز عملية ال Tokenization كالتالي: # RegexpTokenizer استيراد الكلاس from nltk.tokenize import RegexpTokenizer # تحديد النص text = """Stopwords are the English words which does not add much meaning to a sentence. They can safely be ignored without sacrificing the meaning of the sentence. For example, the words like the, he, have etc. Such words are already captured this in corpus named corpus. We first download it to our python environment. """ # تعريف كائن من الصنف السابق tk = RegexpTokenizer('\s+', gaps = True) # الوسيط الأول هو التعبير المنتظم الوسيط # tokenizeation المعرفة ضمن هذا الصنف للقيام بعملية ال tokenize نقوم الآن باستدعاء الدالة tokens=tk.tokenize(text) print(tokens) """ ['Stopwords', 'are', 'the', 'English', 'words', 'which', 'does', 'not', 'add', 'much', 'meaning', 'to', 'a', 'sentence.', 'They', 'can', 'safely', 'be', 'ignored', 'without', 'sacrificing', 'the', 'meaning', 'of', 'the', 'sentence.', 'For', 'example,', 'the', 'words', 'like', 'the,', 'he,', 'have', 'etc.', 'Such', 'words', 'are', 'already', 'captured', 'this', 'in', 'corpus', 'named', 'corpus.', 'We', 'first', 'download', 'it', 'to', 'our', 'python', 'environment.'] """
- 2 اجابة
-
- 1
-
يمكنك القيام بذلك من خلال nltk حيث أنه لديها قاموساً يجمع هذه الكلمات. ويمكنك الوصول لها واستعراضها (وتعديلها إذا أردت عن طريق إضافة أو حذف بعض الكلمات) بالشكل التالي: # stopwords نقوم باستيراد الوحدة from nltk.corpus import stopwords # 'english' ونمرر لها الوسيط words نقوم باستدعاء الدالة stopwords من خلال الوحدة sw=stopwords.words('english') # الآن أصبح لدينا مجموعة كلمات التوقف الأساسية في اللغة الإنجليزية print(sw) """ ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"] """ الآن سنقوم بكتابة مثال لاستخدام هذه القائمة لحذف كلمات التوقف: from nltk.corpus import stopwords from nltk.tokenize import word_tokenize # تحديد النص text = """Stopwords are the English words which does not add much meaning to a sentence. They can safely be ignored without sacrificing the meaning of the sentence. For example, the words like the, he, have etc. Such words are already captured this in corpus named corpus. We first download it to our python environment. """ # إنشاء مجموعة من كلمات التوقف sw = set(stopwords.words('english')) # للنص tokenization القيام بعملية word_tokens = word_tokenize(text) # word_tokens تصفية كلمات التوقف من ال filteredText = [word for word in word_tokens if not word.lower() in sw] print(filteredText)
- 2 اجابة
-
- 1
-
يمكنك استخدام الكلاس WhitespaceTokenizer لحل المشكلة، حيث يمكّنك من تنفيذ عملية ال tokinezation مع معالجة تلقائية للمسافات والأسطر الجديدة (تجاهلها)، ويمكنك استخدامها كما يلي: # WhitespaceTokenizer استيراد الكلاس from nltk.tokenize import WhitespaceTokenizer # إنشاء كائن من هذا الكلاس tk = WhitespaceTokenizer() # تحديد النص text = "The price\t of burger \nin BurgerKing is Rs.36.\n" # لتأدية المطلوب WhitespaceTokenizer المعرفة ضمن الكلاس tokenize استخدام الدالة tokens = tk.tokenize(text) print(tokens) # ['The', 'price', 'of', 'burger', 'in', 'BurgerKing', 'is', 'Rs.36.']
- 2 اجابة
-
- 1
-
يمكنك استخدام الدالة words المعرّفة ضمن الوحدة nltk.corpus.words، حيث تعيد لك هذه الدالة قائمة تحوي جميع الكلمات الإنجليزية تقريباً، وبالتالي يمكنك استخدامها واختبار انتماء كلمة لمجموعة المفردات الإنجليزية من خلال المعامل in كما يلي: from nltk.corpus import words "can" in words.words() # True "try" in words.words() # True "I" in words.words() # True وكحالة خاصة يمكنك استخدام المكتبة PyEnchant المتخصصة بالتدقيق الإملائي بالشكل التالي: # استيراد المكتبة import enchant # وبالتالي يعطيك قاموساً بكل الكلمات الانجليزية en_US القيمة enchant المعرفة ضمن المكتبة Dict نمرر للدالة words = enchant.Dict("en_US") # لاختبار انتماء كلمة لهذا المعجم check ثم نستخدم الدالة words.check("can") # True
- 1 جواب
-
- 1
-
يمكنك استخدام الدالة find_element_by_xpath، حيث تُرجع قائمة بجميع العناصر المطابقة للتعبير الذي تمرره لها وهنا نحتاج إلى العنصر span ذو الكلاس rule لذا نكتب: spans = driver.find_elements_by_xpath("//span[@class='rule']") الآن نقوم بالمرور على القائمة spans لاستخراج النص من كل عنصر من خلال استخدام الواصفة text: for span in spans: print(span.text)
- 1 جواب
-
- 2
-
على أنظمة لينوكس: 1. قم بتحديث فهرس الحزمة عن طريق كتابة الأمر أدناه: sudo apt update 2. تحميل مدير الحزم pip لبايثون 3: sudo apt install python3-pip 3. استخدم الأمر التالي لتثبيت NLTK: sudo pip install -U nltk sudo pip3 install -U nltk على نظام ويندوز: pip install nltk في حال كنت تعمل ضمن بيئة أناكوندا، افتح Anaconda prompt ثم اكتب الأمر التالي: conda install -c anaconda nltk
- 1 جواب
-
- 1
-
يمكنك استخدام الدالة find_element بالشكل التالي: # سنقوم باستخدام الدالة التي ذكرناها # css_selector سنقوم بإيجاد الجدول من خلال هذه الدالة من خلال ال table = find_element_by_css_selector('table.dAta') # كمعطى للدالة table نقوم بتمرير كلاس الوسم # الآن بعد أن حصلنا على الجدول نقوم باستخدام نفس الدالة لكن هذه المرة لإيجاد جميع الصفوف rows=table.find_elements_by_css_selector('tr') # الآن نقوم بالتكرار عليها for row in rows: # إيجاد كل الخلايا ضمن الصف cells=row.find_elements_by_tag_name('td') # التكرار عليها for td in cells: # text طباعة النص الموجود ضمنها من خلال الواصفة print(td.text)
- 1 جواب
-
- 1
-
يمكننا العثور على عنصر شقيق تالي من نفس الأب من خلال ال xpath مع استخدام العبارة following-sibling ضمنها بالشكل التالي: driverObj.find_element_by_xpath("//p[@id='A']/following-sibling::p") من المهم ملاحظة أنه من الممكن فقط الانتقال من الأخ الحالي إلى الأخ التالي من خلال ال xpath.
- 1 جواب
-
- 1
-
يمكنك استخدام اسم المعرف id لتحديد الوسم المطلوب ثم تحديد القيمة value المطلوب تحديدها بالشكل التالي: # xpath من خلال ال driverObj.find_element_by_xpath("//select[@id='X']/option[@value='B']").click() # css_selector أو من خلال driverObj.find_element_by_css_selector("select#X > option[value='B']").click() # لاختيار القيمة المطلوبة select_by_value لكن هنا سنستخدم الدالة css_selector أو من خلال Select(driverObj.find_element_by_css_selector("select#X")).select_by_value(B).click()
- 1 جواب
-
- 1
-
يمكنك القيام بذلك بالشكل التالي: from selenium import webdriver # driver إنشاء كائن driver = webdriver.Firefox() # تحميل الصفحة driver.get('URL') # xpath إيجاد كل المُعرفات من خلال ال IDs = driver.find_elements_by_xpath('//*[@id]') # اللآن نقوم بالمرور عليها واحداً تلو الآخر for id in IDs: # tag_name نقوم بطباعة اسم الوسم الموجودة ضمنه من خلال الخاصية print (id.tag_name) # نقوم بطباعة المُعرف print (id.get_attribute('id'))
-
يمكنك تحديد مهلة لتحميل الصفحة من خلال الدالة set_page_load_timeout، حيث سيتم رمي الاستثناء TimeoutException في حالة تجاوزت مدة الاستجابة للطلب 10 ثوان (أو أي مدة تحددها)، بالشكل التالي: 1. إذا كنت تستخدم متصفح كروم أو فيرفوكس: driverObj.set_page_load_timeout(10) 2. باقي المتصفحات استخدم الدالة implicitly_wait: driverObj.implicitly_wait(10)
-
يمكنك استخدام الواصفة text. بعد أن تمسك بالعنصر المطلوب (إيجاده)، على سبيل المثال: # ثم طباعة النص فيها yourTag هنا سنقوم بالإمساك بكل وسوم for element in self.driver.find_elements_by_tag_name('yourTag'): print (element.text) # طباعة النص print (element.tag_name) # طباعة اسم الوسم print (element.parent) # طباعة الوسم الأب print (element.location) # طباعة الموقع print (element.size) # طباعة الحجم مثال آخر: # استيراد الوحدات اللازمة from selenium import webdriver # geckodriver وتحديد مسار الملف التنفيذيي ل driver إنشاء كائن driver = webdriver.Firefox(executable_path="D:\\geckodriver.exe") # الصفحة المطلوبة URL تحديد عنوان driver.get(URL) # تحديد العنصر المطلوب l=driver.find_element_by_css_selector("h4") # الحصول على النص وطباعته print("Text is: " + l.text) driver.close()
-
يمكنك إنشاء ملف تعريف للكروم وتحديد موقع التنزيل وتمريره لباني ال driver بالشكل التالي: from selenium import webdriver # لتحديد الخيار الجديد الذي نريد تطبيقه options تعريف كائن options = webdriver.ChromeOptions() # تحديد مسار التنزيل المطلوب هنا newPath = {'download.default_directory' : '/path/to/dir'} options.add_experimental_option('prefs', newPath) # driver إلى باني ال options تمرير كائن ال driver = webdriver.Chrome(chrome_options=options)
-
يمكننا جلب روابط href في صفحة من خلال سيلينيوم باستخدام الدالةfind_elements. وكما أشرت فإنه تم تصميم جميع الروابط الموجودة في صفحة الويب في مستند html بحيث يتم تضمينها داخل الوسم <a>. # استيراد الوحدات اللازمة from selenium import webdriver # geckodriver وتحديد مسار الملف التنفيذيي ل driver إنشاء كائن driver = webdriver.Firefox(executable_path="D:\\geckodriver.exe") # الصفحة المطلوبة URL تحديد عنوان URL="https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9" driver.get(URL) # تحديد العنصر المراد الإمساك به lnks=driver.find_elements_by_tag_name("a") # المرور على كل الروابط for lnk in lnks: # href للحصول على كامل ال get_attribute استخدام الدالة print(lnk.get_attribute("href")) driver.quit() الخرج: https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9#mw-head https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%B5%D9%81%D8%AD%D8%A9_%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A%D8%A9#searchInput https://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7 https://ar.wikipedia.org/wiki/%D9%85%D9%88%D8%B3%D9%88%D8%B9%D8%A9 https://ar.wikipedia.org/wiki/%D9%85%D8%AD%D8%AA%D9%88%D9%89_%D8%AD%D8%B1 https://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7:%D9%85%D9%82%D8%AF%D9%85%D8%A9 https://ar.wikipedia.org/wiki/%D8%AE%D8%A7%D8%B5:%D8%A5%D8%AD%D8%B5%D8%A7%D8%A1%D8%A7%D8%AA https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D9%84%D8%BA%D8%A9_%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%8A%D8%A9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D9%85%D8%AD%D8%AA%D9%88%D9%89_%D9%85%D8%AA%D9%85%D9%8A%D8%B2 https://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7:%D8%AA%D8%B5%D9%81%D8%AD https://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7:%D9%81%D9%87%D8%B1%D8%B3_%D8%B3%D8%B1%D9%8A%D8%B9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A7%D9%84%D8%A3%D8%AF%D9%8A%D8%A7%D9%86 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A7%D9%84%D8%A3%D8%AF%D9%8A%D8%A7%D9%86 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A3%D8%B9%D9%84%D8%A7%D9%85 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A3%D8%B9%D9%84%D8%A7%D9%85 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%A7%D9%84%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AA%D9%82%D9%86%D9%8A%D8%A9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AA%D9%82%D8%A7%D9%86%D8%A9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AB%D9%82%D8%A7%D9%81%D8%A9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AB%D9%82%D8%A7%D9%81%D8%A9 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AC%D8%BA%D8%B1%D8%A7%D9%81%D9%8A%D8%A7 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%AC%D8%BA%D8%B1%D8%A7%D9%81%D9%8A%D8%A7 https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A7%D8%AA https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A7%D8%AA https://ar.wikipedia.org/wiki/%D8%A8%D9%88%D8%A7%D8%A8%D8%A9:%D8%B7%D8%A8
-
هذا لأنك تحتاج إلى استيراد الاستثناء أولاً فهو غير مضمن مباشرةً في بايثون: from selenium.common.exceptions import NoSuchElementException وبعد ذلك يمكنك الرجوع إليه: except NoSuchElementException: # التعامل مع العنصر الغير موجود وإذا كنت ترغب في إعطاء تفاصيل عن الاستثناء في مخرجاتك، فيمكنك استخدام: except NoSuchElementException as e: print(e) # أو أي إجراءات أخرى
-
يمكنك البحث عن العنصر الأب parent باستخدام .. xpath كالتالي: # الإمساك بالعنصر المطلوب من خلال الاسم inputElement = driver.find_element_by_name('i1') # الوصول للعنصر الأب للعنصر المطلوب parint = inputElement.find_element_by_xpath('..') ويمكننا إنشاء مسار xpath منفصل للحصول على الخيار المحدد كما يلي: selected_option = driver.find_element_by_xpath('//option[@selected="selected"]')
-
يمكننا الحصول على واصفة العنصر من خلال الدالة getAttribute حيث نقوم بتمرير قيمة الواصفة التي نريد جلبها كوسيطة للدالة. في مثال هنا لدينا الواصفة src بالقيمة "/about/images/logo.png" لذا نقوم بالتالي: # استيراد الوحدات from selenium import webdriver # webdriver إنشاء كائن driver = webdriver.Firefox() # الحصول على صفحة الويب driver.get("URL") # تحديد العنص المطلوب element = driver.find_element_by_xpath("//img[@class='tp-logo']") # src للحصو على الواصفة getAttribute استخدام الدالة print("Src attribute is : " + element.getAttribute("src"))