"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन डायनेमिक वेब स्क्रैपिंग उदाहरण: सेलेनियम और वेबड्राइवर का अनुप्रयोग

पायथन डायनेमिक वेब स्क्रैपिंग उदाहरण: सेलेनियम और वेबड्राइवर का अनुप्रयोग

2024-09-02 को प्रकाशित
ब्राउज़ करें:745

Python dynamic web scraping example: application of selenium and webdriver

डायनामिक वेब स्क्रैपिंग आमतौर पर कुछ पायथन लाइब्रेरीज़ का उपयोग करती है, जैसे HTTP अनुरोधों को संभालने के लिए अनुरोध, ब्राउज़र व्यवहार को अनुकरण करने के लिए सेलेनियम, या पिपेटियर। निम्नलिखित लेख सेलेनियम के उपयोग पर केंद्रित होगा।

सेलेनियम का संक्षिप्त परिचय

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

पायथन डायनेमिक वेब स्क्रैपिंग उदाहरण

सबसे पहले, सुनिश्चित करें कि आपके पास सेलेनियम स्थापित है। यदि नहीं, तो आप इसे पाइप के माध्यम से इंस्टॉल कर सकते हैं:

pip install selenium

आपको संबंधित ब्राउज़र के लिए वेबड्राइवर भी डाउनलोड करना होगा। ‌मान लीजिए कि हम क्रोम ब्राउज़र का उपयोग करते हैं, आपको क्रोमड्राइवर डाउनलोड करना होगा और सुनिश्चित करना होगा कि इसका पथ सिस्टम पर्यावरण चर में जोड़ा गया है, या आप सीधे कोड में इसका पथ निर्दिष्ट कर सकते हैं। ‌

वेब पेज का शीर्षक प्राप्त करने के लिए यहां एक सरल उदाहरण दिया गया है:​

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

यह स्क्रिप्ट example.com खोलेगी, उसका शीर्षक प्राप्त करेगी और उसका प्रिंट आउट लेगी। ‌

ध्यान दें कि ‌webdriver_manager एक तृतीय-पक्ष लाइब्रेरी है जो स्वचालित रूप से WebDriver संस्करणों का प्रबंधन करती है। ‌यदि आप इसका उपयोग नहीं करना चाहते हैं, तो आप मैन्युअल रूप से वेबड्राइवर भी डाउनलोड कर सकते हैं और पथ निर्दिष्ट कर सकते हैं। ‌

डायनामिक वेब पेजों में जावास्क्रिप्ट द्वारा प्रस्तुत सामग्री शामिल हो सकती है। सेलेनियम संचालन से पहले इन तत्वों के लोड होने की प्रतीक्षा कर सकता है, जो ऐसे वेब पेजों को संसाधित करने के लिए बहुत उपयुक्त है। ‌

पायथन में डायनामिक वेब पेजों को स्क्रैप करते समय प्रॉक्सी सेट करें

डायनामिक वेब पेजों को क्रॉल करने के लिए पायथन का उपयोग करते समय, आप अक्सर प्रॉक्सी का उपयोग करते हैं। प्रॉक्सी का उपयोग एक तरफ कई बाधाओं से बचाता है, और दूसरी तरफ कार्य कुशलता में तेजी लाता है।

हमने ऊपर सेलेनियम की स्थापना शुरू की है। इसके अलावा, आपको संबंधित ब्राउज़र का वेबड्राइवर भी डाउनलोड करना होगा और सुनिश्चित करना होगा कि इसका पथ सिस्टम के पर्यावरण चर में जोड़ा गया है, या आप सीधे कोड में इसका पथ निर्दिष्ट कर सकते हैं।
उपरोक्त चरणों को पूरा करने के बाद, हम प्रॉक्सी को कॉन्फ़िगर कर सकते हैं और डायनामिक वेब पेजों को स्क्रैप कर सकते हैं:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

इस उदाहरण में, ‌--proxy-server=http://your_proxy_ip:port प्रॉक्सी को कॉन्फ़िगर करने के लिए पैरामीटर है। आपको अपने_proxy_ip और पोर्ट को उस प्रॉक्सी सर्वर के आईपी पते और पोर्ट नंबर से बदलना होगा जो आप वास्तव में कर रहे हैं। उपयोग

यदि आपके प्रॉक्सी सर्वर को प्रमाणीकरण की आवश्यकता है, तो आप निम्न प्रारूप का उपयोग कर सकते हैं:​

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

जहां उपयोगकर्ता नाम और पासवर्ड आपके प्रॉक्सी सर्वर का उपयोगकर्ता नाम और पासवर्ड हैं। ‌

उपरोक्त कोड चलाने के बाद, सेलेनियम कॉन्फ़िगर किए गए प्रॉक्सी सर्वर के माध्यम से लक्ष्य वेब पेज तक पहुंच जाएगा और वेब पेज का शीर्षक प्रिंट कर लेगा। ‌
ChromeDriver का पथ कैसे निर्दिष्ट करें?
क्रोमड्राइवर सेलेनियम वेबड्राइवर का हिस्सा है। यह स्वचालित परीक्षण और वेब क्रॉलर जैसे कार्यों को लागू करने के लिए वेबड्राइवर एपीआई के माध्यम से क्रोम ब्राउज़र के साथ इंटरैक्ट करता है। ‌
ChromeDriver का पथ निर्दिष्ट करने में मुख्य रूप से पर्यावरण चर का कॉन्फ़िगरेशन शामिल है। ‌यहां विशिष्ट चरण दिए गए हैं: ‌
1. Chrome का इंस्टॉलेशन स्थान ढूंढें
आप इसे डेस्कटॉप पर Google Chrome शॉर्टकट पर राइट-क्लिक करके और "फ़ाइल स्थान खोलें" का चयन करके पा सकते हैं। ‌
2. Chrome के इंस्टॉलेशन पथ को सिस्टम वातावरण चर पथ में जोड़ें
यह सिस्टम को किसी भी स्थान पर ChromeDriver को पहचानने की अनुमति देता है। ‌
3. ChromeDriver को डाउनलोड और अनज़िप करें
ChromeDriver को डाउनलोड करना सुनिश्चित करें जो Chrome ब्राउज़र के संस्करण से मेल खाता हो और उसे exe प्रोग्राम पर अनज़िप करें। ‌
4. ChromeDriver की exe फ़ाइल को Chrome के इंस्टॉलेशन पथ पर कॉपी करें
इस तरह, जब आपको ChromeDriver का उपयोग करने की आवश्यकता होती है, तो सिस्टम स्वचालित रूप से इसे पहचान सकता है और कॉल कर सकता है

उपरोक्त पायथन डायनेमिक वेब क्रॉलिंग में सेलेनियम और वेबड्राइवर का अनुप्रयोग है, और वेब पेजों को क्रॉल करते समय इससे कैसे बचा जाए। बेशक, आप उपरोक्त उदाहरणों के माध्यम से वास्तविक संचालन का अभ्यास भी कर सकते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 से संपर्क करें इसे हटाने के लिए .com
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3