सेलेनियम के साथ टेक्स्ट द्वारा तत्व कैसे खोजें

How Find Element Text With Selenium



वेब पेज से तत्वों का पता लगाना और चयन करना सेलेनियम के साथ वेब स्क्रैपिंग की कुंजी है। आप सेलेनियम में टैग नाम, आईडी, वर्ग का नाम, XPath चयनकर्ता, CSS चयनकर्ता आदि का उपयोग करके तत्वों का चयन कर सकते हैं। आप सेलेनियम के साथ एक विशिष्ट टेक्स्ट वाले तत्वों का भी चयन कर सकते हैं। यह वेब पेज से आसानी से लिंक और बटन चुनने में मददगार है। भले ही पृष्ठ संरचना बदल जाती है, जब तक वेब पेज तत्व का पाठ वही रहता है, आपके चयनकर्ता को ठीक काम करना चाहिए। सेलेनियम में टेक्स्ट का उपयोग करके लिंक और बटन का चयन करने का यह लाभ है।

इस लेख में, मैं आपको यह दिखाने जा रहा हूं कि सेलेनियम में टेक्स्ट का उपयोग करके सेलेनियम पायथन लाइब्रेरी के साथ वेब पेजों से तत्वों का पता कैसे लगाया जाए और उनका चयन कैसे किया जाए। तो चलो शुरू हो जाओ।







पूर्वापेक्षाएँ:

इस आलेख के आदेशों और उदाहरणों को आज़माने के लिए, आपके पास यह होना चाहिए:



  1. आपके कंप्यूटर पर एक लिनक्स वितरण (अधिमानतः उबंटू) स्थापित है।
  2. आपके कंप्यूटर पर पायथन 3 स्थापित है।
  3. आपके कंप्यूटर पर PIP 3 स्थापित है।
  4. अजगर वर्चुअलएन्व पैकेज आपके कंप्यूटर पर स्थापित है।
  5. मोज़िला फ़ायरफ़ॉक्स या Google क्रोम वेब ब्राउज़र आपके कंप्यूटर पर स्थापित हैं।
  6. फ़ायरफ़ॉक्स गेको ड्राइवर या क्रोम वेब ड्राइवर को स्थापित करने का तरीका पता होना चाहिए।

आवश्यकताओं ४, ५, और ६ को पूरा करने के लिए मेरा लेख पढ़ें पायथन 3 में सेलेनियम का परिचय .



आप अन्य विषयों पर कई लेख पा सकते हैं LinuxHint.com . यदि आपको किसी सहायता की आवश्यकता हो तो उनकी जाँच अवश्य करें।





एक परियोजना निर्देशिका की स्थापना:

सब कुछ व्यवस्थित रखने के लिए, एक नई परियोजना निर्देशिका बनाएं सेलेनियम-पाठ-चयन/ निम्नलिखित नुसार:

$एमकेडीआईआर -पीवीसेलेनियम-पाठ-चयन/ड्राइवरों



पर नेविगेट करें सेलेनियम-पाठ-चयन/ परियोजना निर्देशिका इस प्रकार है:

$सीडीसेलेनियम-पाठ-चयन/

प्रोजेक्ट डायरेक्टरी में एक पायथन वर्चुअल वातावरण इस प्रकार बनाएँ:

$वर्चुअलएन्व .venv

वर्चुअल वातावरण को निम्नानुसार सक्रिय करें:

$स्रोत.venv/पूर्वाह्न/सक्रिय

PIP3 का उपयोग करके सेलेनियम पायथन लाइब्रेरी को निम्नानुसार स्थापित करें:

$ pip3 सेलेनियम स्थापित करें

में सभी आवश्यक वेब ड्राइवर डाउनलोड और इंस्टॉल करें ड्राइवर/ परियोजना की निर्देशिका। मैंने अपने लेख में वेब ड्राइवरों को डाउनलोड करने और स्थापित करने की प्रक्रिया के बारे में बताया है पायथन 3 में सेलेनियम का परिचय .

पाठ द्वारा तत्व ढूँढना:

इस खंड में, मैं आपको सेलेनियम पायथन पुस्तकालय के साथ पाठ द्वारा वेब पेज तत्वों को खोजने और चुनने के कुछ उदाहरण दिखाने जा रहा हूं।

मैं टेक्स्ट द्वारा वेब पेज तत्वों को चुनने, वेब पेज से लिंक का चयन करने के सबसे सरल उदाहरण से शुरू करने जा रहा हूं।

facebook.com के लॉगिन पेज में, हमारे पास एक लिंक है खाता भूल गए? जैसा कि आप नीचे स्क्रीनशॉट में देख सकते हैं। आइए इस लिंक को सेलेनियम के साथ चुनें।

एक नई पायथन लिपि बनाएँ ex01.py और इसमें कोड की निम्न पंक्तियाँ टाइप करें।

सेसेलेनियमआयातवेबड्राइवर
सेसेलेनियमवेबड्राइवर.सामान्य.चांबियाँ आयातचांबियाँ
सेसेलेनियमवेबड्राइवर.सामान्य.द्वारा आयातद्वारा
से समय आयातनींद
ब्राउज़र=वेबड्राइवर।क्रोम(निष्पादन योग्य_पथ='./ड्राइवर/क्रोमड्राइवर')
ब्राउज़र।पाना('https://www.facebook.com/')
भूल गया खाता लिंक=ब्राउज़र।खोज_तत्व(द्वारा।XPATH, '
//*[पाठ ()='खाता भूल गए?']'
)
खाता लिंक भूल गया।भेजें_कुंजी(चांबियाँ।प्रवेश करना)

एक बार जब आप कर लें, तो सहेजें ex01.py पायथन लिपि।

लाइन 1-4 सभी आवश्यक घटकों को पायथन प्रोग्राम में आयात करती है।

लाइन 6 एक क्रोम बनाता है ब्राउज़र वस्तु का उपयोग कर क्रोमड्राइवर से द्विआधारी ड्राइवर/ परियोजना की निर्देशिका।

लाइन 8 ब्राउज़र को facebook.com वेबसाइट लोड करने के लिए कहती है।

पंक्ति 10 उस लिंक को ढूंढती है जिसमें टेक्स्ट है खाता भूल गए? XPath चयनकर्ता का उपयोग करना। उसके लिए, मैंने XPath चयनकर्ता का उपयोग किया है //*[पाठ ()='खाता भूल गए?'] .

XPath चयनकर्ता के साथ शुरू होता है //, जिसका अर्थ है कि तत्व पृष्ठ पर कहीं भी हो सकता है। NS * प्रतीक सेलेनियम को किसी भी टैग का चयन करने के लिए कहता है ( प्रति या पी या अवधि, आदि) जो वर्ग कोष्ठक के अंदर की स्थिति से मेल खाता है [] . यहां, शर्त यह है कि, तत्व टेक्स्ट के बराबर है खाता भूल गए?

NS मूलपाठ() XPath फ़ंक्शन का उपयोग किसी तत्व का टेक्स्ट प्राप्त करने के लिए किया जाता है।

उदाहरण के लिए, मूलपाठ() रिटर्न नमस्ते दुनिया यदि यह निम्नलिखित HTML तत्व का चयन करता है।

< प्रति href='http://dummysite.com'>नमस्ते दुनिया</ प्रति >

लाइन 11 भेजती है करने के लिए कुंजी प्रेस खाता भूल गए? संपर्क।

पायथन लिपि चलाएँ ex01.py निम्न आदेश के साथ:

$ अजगर ex01.पीयू

जैसा कि आप देख सकते हैं, वेब ब्राउज़र खोजता है, चयन करता है और दबाता है पर कुंजी खाता भूल गए? संपर्क।

NS खाता भूल गए? लिंक ब्राउज़र को निम्न पृष्ठ पर ले जाता है।

उसी तरह, आप आसानी से उन तत्वों की खोज कर सकते हैं जिनमें आपकी वांछित विशेषता मान है।

यहां ही लॉग इन करें बटन एक है इनपुट तत्व जिसमें है मूल्य गुण लॉग इन करें . आइए देखें कि टेक्स्ट द्वारा इस तत्व का चयन कैसे करें।

एक नई पायथन लिपि बनाएँ ex02.py और इसमें कोड की निम्न पंक्तियाँ टाइप करें।

सेसेलेनियमआयातवेबड्राइवर
सेसेलेनियमवेबड्राइवर.सामान्य.चांबियाँ आयातचांबियाँ
सेसेलेनियमवेबड्राइवर.सामान्य.द्वारा आयातद्वारा
से समय आयातनींद
ब्राउज़र=वेबड्राइवर।क्रोम(निष्पादन योग्य_पथ='./ड्राइवर/क्रोमड्राइवर')
ब्राउज़र।पाना('https://www.facebook.com/')
नींद(5)
ईमेल इनपुट=ब्राउज़र।खोज_तत्व(द्वारा।XPATH, '//इनपुट[@id='ईमेल']')
पासवर्ड इनपुट=ब्राउज़र।खोज_तत्व(द्वारा।XPATH, '//इनपुट[@id='पास']')
लॉगिनबटन=ब्राउज़र।खोज_तत्व(द्वारा।XPATH, '//*[@value='लॉग इन']')
ईमेल इनपुट।भेजें_कुंजी(' [ईमेल संरक्षित]')
नींद(5)
पासवर्ड इनपुट।भेजें_कुंजी('गुप्त-पास')
नींद(5)
लॉगिन बटन।भेजें_कुंजी(चांबियाँ।प्रवेश करना)

एक बार जब आप कर लें, तो सहेजें ex02.py पायथन लिपि।

लाइन 1-4 सभी आवश्यक घटकों को आयात करती है।

लाइन 6 एक क्रोम बनाता है ब्राउज़र वस्तु का उपयोग कर क्रोमड्राइवर से द्विआधारी ड्राइवर/ परियोजना की निर्देशिका।

लाइन 8 ब्राउज़र को facebook.com वेबसाइट लोड करने के लिए कहती है।

एक बार जब आप स्क्रिप्ट चलाते हैं तो सब कुछ इतनी तेजी से होता है। तो, मैंने का उपयोग किया है नींद() समारोह में कई बार ex02.py ब्राउज़र कमांड में देरी के लिए। इस तरह, आप देख सकते हैं कि सब कुछ कैसे काम करता है।

पंक्ति 11 ईमेल इनपुट टेक्स्ट बॉक्स ढूंढती है और तत्व का संदर्भ संग्रहीत करती है ईमेल इनपुट चर।

लाइन 12 ईमेल इनपुट टेक्स्ट बॉक्स ढूंढता है और तत्व का संदर्भ संग्रहीत करता है ईमेल इनपुट चर।

लाइन 13 इनपुट तत्व ढूंढता है जिसमें विशेषता है मूल्य का लॉग इन करें XPath चयनकर्ता का उपयोग करना। उसके लिए, मैंने XPath चयनकर्ता का उपयोग किया है //*[@value='लॉग इन'] .

XPath चयनकर्ता के साथ शुरू होता है // . इसका मतलब है कि तत्व पृष्ठ पर कहीं भी हो सकता है। NS * प्रतीक सेलेनियम को किसी भी टैग का चयन करने के लिए कहता है ( इनपुट या पी या अवधि, आदि) जो वर्ग कोष्ठक के अंदर की स्थिति से मेल खाता है [] . यहाँ, शर्त है, तत्व विशेषता मूल्य के बराबर है लॉग इन करें .

लाइन 15 इनपुट भेजती है[ईमेल संरक्षित]ईमेल इनपुट टेक्स्ट बॉक्स में, और लाइन 16 अगले ऑपरेशन में देरी करती है।

लाइन 18 पासवर्ड इनपुट टेक्स्ट बॉक्स में इनपुट सीक्रेट-पास भेजती है, और लाइन 19 अगले ऑपरेशन में देरी करती है।

लाइन 21 भेजती है लॉगिन बटन पर कुंजी दबाएं।

चलाएं ex02.py निम्नलिखित आदेश के साथ पायथन लिपि:

$ python3 ex02.पीयू

जैसा कि आप देख सकते हैं, ईमेल और पासवर्ड टेक्स्ट बॉक्स हमारे डमी मूल्यों से भरे हुए हैं, और लॉग इन करें बटन दबाया जाता है।

फिर पृष्ठ निम्न पृष्ठ पर नेविगेट करता है।

आंशिक पाठ द्वारा तत्व ढूँढना:

पिछले भाग में, मैंने आपको दिखाया है कि विशिष्ट पाठ द्वारा तत्वों को कैसे खोजा जाता है। इस खंड में, मैं आपको दिखाने जा रहा हूं कि आंशिक पाठ का उपयोग करके वेब पेजों से तत्वों को कैसे खोजा जाए।

उदाहरण में, ex01.py , मैंने लिंक तत्व की खोज की है जिसमें टेक्स्ट है खाता भूल गए? . आप आंशिक टेक्स्ट का उपयोग करके उसी लिंक तत्व को खोज सकते हैं जैसे भूल गए एसीसी . ऐसा करने के लिए, आप का उपयोग कर सकते हैं शामिल है() XPath फ़ंक्शन, जैसा कि लाइन 10 में दिखाया गया है ex03.py . शेष कोड in . के समान हैं ex01.py . परिणाम वही होंगे।

लाइन १० में ex03.py , चयन शर्त का इस्तेमाल किया शामिल है (स्रोत, पाठ) XPath फ़ंक्शन। यह फ़ंक्शन 2 तर्क लेता है, स्रोत, तथा मूलपाठ .

NS शामिल है() फ़ंक्शन जाँचता है कि क्या मूलपाठ दूसरे तर्क में दिया गया आंशिक रूप से मेल खाता है स्रोत पहले तर्क में मूल्य।

स्रोत तत्व का पाठ हो सकता है ( मूलपाठ() ) या तत्व का गुण मान ( @attr_name )

में ex03.py , तत्व का पाठ चेक किया गया है।

आंशिक टेक्स्ट का उपयोग करके वेब पेज से तत्वों को खोजने के लिए एक और उपयोगी XPath फ़ंक्शन है: प्रारंभ-साथ (स्रोत, पाठ) . इस फ़ंक्शन के समान तर्क हैं: शामिल है() काम करता है और उसी तरह प्रयोग किया जाता है। फर्क सिर्फ इतना है कि इसके साथ आरंभ होता है() फ़ंक्शन जाँचता है कि क्या दूसरा तर्क मूलपाठ पहले तर्क की शुरुआती स्ट्रिंग है स्रोत .

मैंने उदाहरण फिर से लिखा है ex03.py उस तत्व की खोज करने के लिए जिसके लिए पाठ शुरू होता है भुला दिया, जैसा कि आप की पंक्ति १० में देख सकते हैं ex04.py . परिणाम in . जैसा ही है पूर्व02 तथा ex03.py .

मैंने भी फिर से लिखा है ex02.py ताकि यह उस इनपुट तत्व की खोज करे जिसके लिए मूल्य विशेषता के साथ शुरू होता है लॉग, जैसा कि आप की पंक्ति १३ में देख सकते हैं ex05.py . परिणाम in . जैसा ही है ex02.py .

निष्कर्ष:

इस लेख में, मैंने आपको सेलेनियम पायथन लाइब्रेरी के साथ टेक्स्ट द्वारा वेब पेजों से तत्वों को खोजने और चुनने का तरीका दिखाया है। अब, आप सेलेनियम पायथन पुस्तकालय के साथ विशिष्ट पाठ या आंशिक पाठ द्वारा वेब पेजों से तत्वों को खोजने में सक्षम होना चाहिए।