Selenium VBA एक्सेल ट्यूटोरियल: क्रोम वेब स्क्रैपिंग उदाहरण

सेलेनियम का उपयोग करके डेटा स्क्रैपिंग क्या है?

Selenium इसे स्वचालन उपकरण के रूप में वर्गीकृत किया जा सकता है जो Google क्रोम का उपयोग करके वेब स्क्रैपिंग करने के लिए HTML वेब पृष्ठों से जानकारी को स्क्रैप करने की सुविधा प्रदान करता है।

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो कैसे तैयार करें? Selenium?

एक्सेल में डेटा स्क्रैपिंग की प्रक्रिया शुरू करने से पहले एक्सेल मैक्रो फ़ाइल पर कुछ निश्चित पूर्वापेक्षाएँ पूरी करनी होती हैं।

ये पूर्वापेक्षाएँ इस प्रकार हैं: –

चरण 1) एक्सेल-आधारित मैक्रो खोलें और एक्सेल के डेवलपर विकल्प तक पहुंचें।

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो तैयार करें

चरण 2) डेवलपर रिबन के अंतर्गत विज़ुअल बेसिक विकल्प का चयन करें।

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो तैयार करें

चरण 3) एक नया मॉड्यूल डालें.

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो तैयार करें

चरण 4) एक नया सबरूटीन आरंभ करें और इसे test2 नाम दें।

Sub test2()
End sub

मॉड्यूल में परिणाम निम्नलिखित होंगे: –

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो तैयार करें

चरण 5) टूल टैब के अंतर्गत संदर्भ विकल्प तक पहुंचें और संदर्भ Selenium प्रकार लाइब्रेरी। निम्नलिखित पुस्तकालयों को मॉड्यूल में संदर्भित किया जाना चाहिए क्योंकि यह Google क्रोम खोलने में मदद करता है और मैक्रो स्क्रिप्टिंग के विकास की सुविधा देता है।

डेटा स्क्रैपिंग करने से पहले एक्सेल मैक्रो तैयार करें

अब एक्सेल फ़ाइल इंटरनेट एक्सप्लोरर के साथ इंटरैक्ट करने के लिए तैयार है। अगला कदम मैक्रो स्क्रिप्ट को शामिल करना होगा जो HTML में डेटा स्क्रैपिंग की सुविधा प्रदान करेगा।

कैसे खोलें Google Chrome VBA का उपयोग कर रहे हैं?

यहाँ, खोलने के लिए कदम हैं Google Chrome VBA का उपयोग करना

चरण 1) सबरूटीन में वेरिएबल्स को घोषित और आरंभ करें जैसा कि नीचे दिखाया गया है

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer

चरण 2) सेलेनियम और VBA का उपयोग करके Google क्रोम खोलने के लिए, driver.start “chrome” लिखें और दबाएँ F5.

कोड निम्नलिखित होगा.

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Application.Wait Now+Timevalue("00:00:20")
End sub

मॉड्यूल का परिणाम इस प्रकार होगा: –

प्रारंभिक Google Chrome वीबीए का उपयोग करना

VBA का उपयोग करके Google क्रोम में वेबसाइट कैसे खोलें?

एक बार जब आप VBA का उपयोग करके Google क्रोम तक पहुँचने में सक्षम हो जाते हैं, तो अगला कदम VBA का उपयोग करके किसी वेबसाइट तक पहुँच को शामिल करना होगा। यह get फ़ंक्शन द्वारा सुगम होता है जिसमें URL को विशेषता में डबल कोट्स के रूप में पास करना होता है।

दिखाए गए अनुसार निम्नलिखित चरणों का पालन करें

मॉड्यूल इस प्रकार दिखेगा: –

वेबसाइट खोलें Google Chrome वीबीए का उपयोग करना

मैक्रो निष्पादित करने के लिए F5 दबाएँ.

निम्न वेबपेज गूगल क्रोम में खुलेगा जैसा कि दिखाया गया है

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Driver.get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now+Timevalue("00:00:20")
End sub

वेबसाइट खोलें Google Chrome वीबीए का उपयोग करना

अब एक्सेल मैक्रो स्क्रैपिंग कार्यों को करने के लिए तैयार है। अगला चरण यह प्रदर्शित करेगा कि सेलेनियम और VBA को लागू करके जानकारी कैसे निकाली जा सकती है।

VBA का उपयोग करके वेबसाइट से जानकारी कैसे निकालें?

मान लीजिए कि डे ट्रेडर रोजाना वेबसाइट से डेटा एक्सेस करना चाहता है। हर बार जब डे ट्रेडर क्लिक बटन दबाता है, तो उसे बाजार डेटा को एक्सेल में अपने आप खींच लेना चाहिए।

उपरोक्त वेबसाइट से, किसी तत्व का निरीक्षण करना और यह देखना आवश्यक होगा कि डेटा किस प्रकार संरचित है। कंट्रोल + दबाकर HTML के नीचे दिए गए स्रोत कोड तक पहुँचें Shift + मैं

<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>

स्रोत कोड इस प्रकार होगा: –

जैसा कि देखा जा सकता है कि डेटा को एक एकल HTML तालिका के रूप में संरचित किया गया है। इसलिए, HTML तालिका से संपूर्ण डेटा खींचने के लिए, मैक्रो को डिज़ाइन करने की आवश्यकता होगी जो HTML तालिका की हेडर जानकारी और तालिका से संबंधित संबंधित डेटा को खींचता है। दिखाए गए अनुसार निम्नलिखित कार्य करें: –

चरण 1) एक फॉर लूप तैयार करें जो HTML हेडर जानकारी के माध्यम से एक संग्रह के रूप में चलता है। सेलेनियम ड्राइवर को HTML तालिका की हेडर जानकारी ढूंढनी होती है। ऐसा करने के लिए, हम दिखाए गए अनुसार कार्य करने के लिए FindElementByClass() और FindElementByTag() विधि का उपयोग करते हैं

VBA मॉड्यूल इस प्रकार दिखेगा: –

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th

चरण 2) इसके बाद, सेलेनियम ड्राइवर ऊपर बताए गए समान दृष्टिकोण का उपयोग करके टेबल डेटा का पता लगाएगा। आपको निम्न कोड लिखना होगा: –

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

VBA मॉड्यूल इस प्रकार दिखेगा: –

एक्सेल को एक्सेल शीट की रेंज विशेषता या एक्सेल शीट की सेल विशेषता के माध्यम से आरंभ किया जा सकता है। VBA स्क्रिप्ट की जटिलता को कम करने के लिए, संग्रह डेटा को कार्यपुस्तिका में मौजूद शीट 2 की एक्सेल सेल विशेषता में आरंभ किया जाता है। इसके अलावा, टेक्स्ट विशेषता HTML टैग के तहत रखी गई टेक्स्ट जानकारी प्राप्त करने में मदद करती है।

Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub

VBA मॉड्यूल इस प्रकार दिखेगा: –

VBA का उपयोग करके वेबसाइट से जानकारी निकालना

चरण 3) मैक्रो स्क्रिप्ट तैयार होने के बाद, एक्सेल बटन को सबरूटीन पास और असाइन करें और VBA के मॉड्यूल से बाहर निकलें। बटन को रिफ्रेश या किसी भी उपयुक्त नाम से लेबल करें जिसे इसे आरंभीकृत किया जा सके। इस उदाहरण के लिए, बटन को रिफ्रेश के रूप में आरंभीकृत किया गया है।

VBA का उपयोग करके वेबसाइट से जानकारी निकालना

चरण 4) नीचे उल्लिखित आउटपुट प्राप्त करने के लिए रिफ्रेश बटन दबाएं

VBA का उपयोग करके वेबसाइट से जानकारी निकालना

चरण 5) एक्सेल के परिणामों की तुलना गूगल क्रोम के परिणामों से करें

VBA का उपयोग करके वेबसाइट से जानकारी निकालना

सारांश

  • Selenium इसे स्वचालन उपकरण के रूप में वर्गीकृत किया जा सकता है जो Google क्रोम का उपयोग करके वेब स्क्रैपिंग करने के लिए HTML वेब पृष्ठों से जानकारी को स्क्रैप करने की सुविधा प्रदान करता है।
  • इंटरनेट पर स्क्रैपिंग का कार्य सावधानीपूर्वक किया जाना चाहिए।
  • सामान्यतः जानकारी निकालना वेबसाइट की शर्तों के विरुद्ध है।
  • जब स्क्रैपिंग सेलेनियम के माध्यम से की जाती है, तो यह कई ब्राउज़र समर्थन प्रदान करता है।
  • दूसरे शब्दों में, स्क्रैपर स्क्रैपिंग के समान कार्य कर सकता है Firefox, इंटरनेट एक्सप्लोरर भी।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: