क्या आप वेब स्क्रैपिंग के लिए Puppeteer और Selenium के बीच चयन करने का प्रयास कर रहे हैं? दोनों ही शक्तिशाली ब्राउज़र ऑटोमेशन फ़्रेमवर्क हैं, और सही विकल्प चुनना आपकी विशिष्ट स्क्रैपिंग आवश्यकताओं और उपलब्ध संसाधनों पर निर्भर करता है।
आपको सूचित निर्णय लेने में मदद करने के लिए, हमने नीचे दी गई तालिका में Puppeteer और Selenium के बीच मुख्य अंतरों को हाइलाइट किया है। इसके बाद, हम विवरणों में गहराई से जाएंगे और वेब पेजों से डेटा निकालने में उनकी प्रभावशीलता को प्रदर्शित करने के लिए प्रत्येक फ़्रेमवर्क के लिए एक स्क्रैपिंग उदाहरण प्रदान करेंगे।
मानदंड | कठपुतली चलानेवाला | सेलेनियम |
---|---|---|
संगत भाषाएँ | केवल जावास्क्रिप्ट ही आधिकारिक तौर पर समर्थित है, लेकिन अनौपचारिक PHP और पायथन पोर्ट भी हैं | जावा, पायथन, C#, रूबी, PHP, जावास्क्रिप्ट, और कोटलिन |
ब्राउज़र समर्थन | क्रोमियम और प्रायोगिक फ़ायरफ़ॉक्स समर्थन | क्रोम, सफारी, फ़ायरफ़ॉक्स, ओपेरा, एज और इंटरनेट एक्सप्लोरर |
प्रदर्शन | 60% सेलेनियम से भी तेज | तेज़ |
ऑपरेटिंग सिस्टम समर्थन | विंडोज़, लिनक्स और मैकओएस | विंडोज़, लिनक्स, मैकओएस और सोलारिस |
वास्तुकला | हेडलेस ब्राउज़र इंस्टेंस के साथ इवेंट-संचालित आर्किटेक्चर | ब्राउज़र इंस्टैंस को नियंत्रित करने के लिए वेब ड्राइवर पर JSONWire प्रोटोकॉल |
आवश्यक शर्तें | जावास्क्रिप्ट पैकेज पर्याप्त है | सेलेनियम बाइंडिंग (चयनित प्रोग्रामिंग भाषा के लिए) और ब्राउज़र वेब ड्राइवर |
समुदाय | सेलेनियम की तुलना में छोटा समुदाय | अच्छी तरह से स्थापित दस्तावेज और एक बड़ा समुदाय |
आइए इन लाइब्रेरीज़ पर विस्तार से चर्चा करें और वेब पेज से डेटा निकालने में उनकी दक्षता को दर्शाने के लिए प्रत्येक के साथ एक स्क्रैपिंग उदाहरण प्रस्तुत करें।
कठपुतली चलानेवाला
कठपुतली चलानेवाला एक Node.js लाइब्रेरी है जो DevTools प्रोटोकॉल पर Chrome या Chromium को नियंत्रित करने के लिए एक उच्च-स्तरीय API प्रदान करती है। इसे Chrome या Chromium में कार्यों को स्वचालित करने के लिए डिज़ाइन किया गया है, जैसे स्क्रीनशॉट लेना, PDF बनाना और पृष्ठों पर नेविगेट करना।
पपेटियर का उपयोग उपयोगकर्ता की अंतःक्रियाओं का अनुकरण करके वेब पेजों के परीक्षण के लिए भी किया जा सकता है, जैसे बटनों पर क्लिक करना, फॉर्म भरना, तथा प्रदर्शित परिणामों की पुष्टि करना।
कठपुतली के लाभ
- उपयोग में आसानी: उपयोग करने में सरल एवं सीधा।
- क्रोमियम के साथ बंडल: किसी अतिरिक्त सेटअप की आवश्यकता नहीं है.
- नेतृत्वहीन मोड: डिफ़ॉल्ट रूप से हेडलेस मोड में चलता है लेकिन इसे पूर्ण ब्राउज़र मोड में चलाने के लिए कॉन्फ़िगर किया जा सकता है।
- घटना-संचालित वास्तुकला: आपके कोड में मैन्युअल स्लीप कॉल की आवश्यकता को समाप्त करता है।
- व्यापक क्षमताएं: स्क्रीनशॉट ले सकते हैं, पीडीएफ़ तैयार कर सकते हैं, और सभी ब्राउज़र क्रियाओं को स्वचालित कर सकते हैं।
- निष्पादन प्रबंधन: आपके स्क्रैपर को अनुकूलित और डीबग करने के लिए रनटाइम और लोड प्रदर्शन को रिकॉर्ड करने के लिए उपकरण प्रदान करता है।
- एसपीए क्रॉलिंग: एकल पृष्ठ अनुप्रयोगों (एसपीए) को क्रॉल करने और पूर्व-रेंडर की गई सामग्री (सर्वर-साइड रेंडरिंग) उत्पन्न करने में सक्षम।
- स्क्रिप्ट रिकॉर्डिंग: DevTools कंसोल का उपयोग करके ब्राउज़र पर क्रियाओं को रिकॉर्ड करके Puppeteer स्क्रिप्ट बनाने की अनुमति देता है।
कठपुतली के नुकसान
- सीमित ब्राउज़र समर्थन: सेलेनियम की तुलना में कम ब्राउज़रों का समर्थन करता है।
- जावास्क्रिप्ट केंद्रित: मुख्य रूप से जावास्क्रिप्ट का समर्थन करता है, हालांकि पायथन और PHP के लिए अनौपचारिक पोर्ट मौजूद हैं।
पपेटियर के साथ वेब स्क्रैपिंग उदाहरण
आइए डेन्यूब वेबसाइट की अपराध और थ्रिलर श्रेणी से आइटम निकालने के लिए पपेटियर वेब स्क्रैपिंग ट्यूटोरियल के माध्यम से चलें।
डेन्यूब स्टोर: अपराध और रोमांच
आरंभ करने के लिए, Puppeteer मॉड्यूल आयात करें और Puppeteer कोड चलाने के लिए एक एसिंक्रोनस फ़ंक्शन बनाएं:
const puppeteer = require('puppeteer');
async function main() {
// Launch a headless browser instance
const browser = await puppeteer.launch({ headless: true });
// Create a new page object
const page = await browser.newPage();
// Navigate to the target URL and wait until the loading finishes
await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });
// Wait for the left-side bar to load
await page.waitForSelector('ul.sidebar-list');
// Click on the first element and wait for the navigation to finish
await Promise.all([
page.waitForNavigation(),
page.click("ul[class='sidebar-list'] > li > a"),
]);
// Wait for the book previews to load
await page.waitForSelector("li[class='preview']");
// Extract the book previews
const books = await page.evaluateHandle(
() => [...document.querySelectorAll("li[class='preview']")]
);
// Extract the relevant data using page.evaluate
const processed_data = await page.evaluate(elements => {
let data = [];
elements.forEach(element => {
let title = element.querySelector("div.preview-title").innerHTML;
let author = element.querySelector("div.preview-author").innerHTML;
let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;
let result = { title, author, rating, price };
data.push(result);
});
return data;
}, books);
// Print out the extracted data
console.log(processed_data);
// Close the page and browser respectively
await page.close();
await browser.close();
}
// Run the main function to scrape the data
main();
अपेक्षित उत्पादन
जब आप कोड चलाते हैं, तो आउटपुट निम्न जैसा होना चाहिए:
[
{
title: 'Does the Sun Also Rise?',
author: 'Ernst Doubtingway',
rating: '★★★★☆',
price: '$9.95'
},
{
title: 'The Insiders',
author: 'E. S. Hilton',
rating: '★★★★☆',
price: '$9.95'
},
{
title: 'A Citrussy Clock',
author: 'Bethany Urges',
rating: '★★★★★',
price: '$9.95'
}
]
कठपुतली का उपयोग करने का एक और उदाहरण
वेब पेजों से डेटा स्क्रैप करने के अलावा, Puppeteer का इस्तेमाल कई तरह के ऑटोमेशन कार्यों के लिए किया जा सकता है। एक आम उपयोग मामला वेबपेज का PDF जेनरेट करना है। आइए एक उदाहरण देखें जहां Puppeteer का इस्तेमाल वेबपेज से PDF जेनरेट करने के लिए किया जाता है।
Puppeteer के साथ PDF बनाना
चरण 1: Puppeteer को आयात करें और एक एसिंक्रोनस फ़ंक्शन बनाएँ
const puppeteer = require('puppeteer');
async function generatePDF() {
// Launch a headless browser instance
const browser = await puppeteer.launch({ headless: true });
// Create a new page object
const page = await browser.newPage();
// Navigate to the target URL
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
// Generate a PDF from the web page
await page.pdf({
path: 'example.pdf', // Output file path
format: 'A4', // Paper format
printBackground: true, // Include background graphics
});
// Close the page and browser respectively
await page.close();
await browser.close();
}
// Run the function to generate the PDF
generatePDF();
अतिरिक्त कठपुतली विकल्प
Puppeteer PDF बनाने के लिए कई विकल्प प्रदान करता है जिन्हें आपकी ज़रूरतों के हिसाब से कस्टमाइज़ किया जा सकता है। यहाँ कुछ विकल्प दिए गए हैं जिनका आप उपयोग कर सकते हैं:
path
: पीडीएफ को सहेजने के लिए फ़ाइल पथ.format
: कागज़ का प्रारूप (जैसे, 'A4', 'लेटर').printBackground
: क्या पृष्ठभूमि ग्राफ़िक्स शामिल करना है.landscape
: करने के लिए सेटtrue
परिदृश्य अभिविन्यास के लिए.margin
: पीडीएफ के लिए मार्जिन निर्दिष्ट करें (ऊपर, दाएं, नीचे, बाएं)।
अतिरिक्त विकल्पों के साथ उदाहरण:
const puppeteer = require('puppeteer');
async function generatePDF() {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.pdf({
path: 'example.pdf',
format: 'A4',
printBackground: true,
landscape: true,
margin: {
top: '20px',
right: '20px',
bottom: '20px',
left: '20px',
},
});
await page.close();
await browser.close();
}
generatePDF();
उदाहरण आउटपुट
उपरोक्त कोड चलाने से एक पीडीएफ फाइल बनेगी जिसका नाम होगा example.pdf
वेब पेज की सामग्री के साथ वर्तमान निर्देशिका में https://example.com
.
Puppeteer वेब ऑटोमेशन कार्यों के लिए एक बहुमुखी उपकरण है, डेटा स्क्रैपिंग से लेकर PDF बनाने तक। इसका उपयोग में आसान और शक्तिशाली विशेषताएं इसे ब्राउज़र गतिविधियों की एक विस्तृत श्रृंखला को स्वचालित करने के लिए एक उत्कृष्ट विकल्प बनाती हैं। चाहे आप डेटा स्क्रैपिंग कर रहे हों, रिपोर्ट बना रहे हों या वेब पेजों का परीक्षण कर रहे हों, Puppeteer आपको काम को कुशलतापूर्वक पूरा करने के लिए आवश्यक उपकरण प्रदान करता है।
सेलेनियम
सेलेनियम यह एक ओपन-सोर्स एंड-टू-एंड टेस्टिंग और वेब ऑटोमेशन टूल है जिसका इस्तेमाल अक्सर वेब स्क्रैपिंग के लिए किया जाता है। इसके मुख्य घटकों में सेलेनियम आईडीई, सेलेनियम वेबड्राइवर और सेलेनियम ग्रिड शामिल हैं।
- सेलेनियम आईडीई: स्वचालित करने से पहले क्रियाओं को रिकॉर्ड करने के लिए उपयोग किया जाता है।
- सेलेनियम वेबड्राइवर: ब्राउज़र में आदेशों को निष्पादित करता है.
- सेलेनियम ग्रिड: समानांतर निष्पादन सक्षम करता है.
सेलेनियम के लाभ
- उपयोग में आसानी: उपयोग करने में सरल एवं सीधा।
- भाषा समर्थन: पायथन, जावा, जावास्क्रिप्ट, रूबी और C# जैसी विभिन्न प्रोग्रामिंग भाषाओं का समर्थन करता है।
- ब्राउज़र स्वचालन: फ़ायरफ़ॉक्स, एज, सफारी और यहां तक कि कस्टम QtWebKit ब्राउज़र जैसे ब्राउज़रों को स्वचालित कर सकते हैं।
- अनुमापकता: विभिन्न ब्राउज़र सेटिंग्स वाले क्लाउड सर्वर का उपयोग करके सेलेनियम को सैकड़ों इंस्टैंस तक स्केल करना संभव है।
- क्रॉस-प्लेटफॉर्म: विंडोज़, मैकओएस और लिनक्स पर काम करता है।
सेलेनियम के नुकसान
- जटिल सेटअपसेलेनियम सेटअप विधियाँ जटिल हो सकती हैं।
सेलेनियम के साथ वेब स्क्रैपिंग नमूना
पपेटियर की तरह, आइए उसी लक्ष्य साइट का उपयोग करके सेलेनियम के साथ वेब स्क्रैपिंग पर एक ट्यूटोरियल देखें। हम डेन्यूब वेबसाइट की क्राइम और थ्रिलर श्रेणी से पुस्तक पूर्वावलोकन निकालेंगे।
डेन्यूब स्टोर: अपराध और रोमांच
चरण 1: आवश्यक मॉड्यूल आयात करें और सेलेनियम कॉन्फ़िगर करें
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
options = webdriver.ChromeOptions()
options.add_argument("--headless")
चरण 2: Chrome वेबड्राइवर को प्रारंभ करें
driver = webdriver.Chrome(options=options)
चरण 3: लक्ष्य वेबसाइट पर जाएँ
time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")
चरण 4: अपराध और थ्रिलर श्रेणी पर क्लिक करें और पुस्तक पूर्वावलोकन निकालें
time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")
चरण 5: प्रत्येक पुस्तक पूर्वावलोकन से डेटा निकालने के लिए एक फ़ंक्शन परिभाषित करें
def extract(element):
title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
return {"title": title, "author": author, "rating": rating, "price": price}
चरण 6: पूर्वावलोकन के माध्यम से लूप करें, डेटा निकालें, और ड्राइवर से बाहर निकलें
extracted_data = []
for element in books:
data = extract(element)
extracted_data.append(data)
print(extracted_data)
driver.quit()
अपेक्षित उत्पादन
उपरोक्त कोड चलाने से निम्नलिखित के समान आउटपुट प्राप्त होगा:
[
{'title': 'Does the Sun Also Rise?', 'author': 'Ernst Doubtingway', 'rating': '★★★★☆', 'price': '$9.95'},
{'title': 'The Insiders', 'author': 'E. S. Hilton', 'rating': '★★★★☆', 'price': '$9.95'},
{'title': 'A Citrussy Clock', 'author': 'Bethany Urges', 'rating': '★★★★★', 'price': '$9.95'}
]
अतिरिक्त सेलेनियम उदाहरण: स्क्रीनशॉट लेना
डेटा स्क्रैपिंग के अलावा, सेलेनियम का उपयोग वेब पेजों के स्क्रीनशॉट लेने के लिए भी किया जा सकता है। सेलेनियम का उपयोग करके वेब पेज का स्क्रीनशॉट लेने का एक उदाहरण यहां दिया गया है।
चरण 1: आवश्यक मॉड्यूल आयात करें और सेलेनियम कॉन्फ़िगर करें
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless")
चरण 2: Chrome वेबड्राइवर को प्रारंभ करें
driver = webdriver.Chrome(options=options)
चरण 3: लक्ष्य वेबसाइट पर जाएँ
url = "https://example.com"
driver.get(url)
चरण 4: स्क्रीनशॉट लें
driver.save_screenshot("example_screenshot.png")
चरण 5: ड्राइवर से बाहर निकलें
driver.quit()
सेलेनियम वेब ऑटोमेशन कार्यों के लिए एक बहुमुखी उपकरण है, जिसमें वेब स्क्रैपिंग और स्क्रीनशॉट लेना शामिल है। कई प्रोग्रामिंग भाषाओं और ब्राउज़रों के लिए इसका समर्थन, साथ ही इसकी स्केलेबिलिटी, इसे विभिन्न ऑटोमेशन आवश्यकताओं के लिए एक शक्तिशाली विकल्प बनाती है। चाहे आप डेटा निकाल रहे हों या रिपोर्ट तैयार कर रहे हों, सेलेनियम आपके कार्यों को कुशलतापूर्वक स्वचालित करने की क्षमता प्रदान करता है।
पपेटियर बनाम सेलेनियम: गति तुलना
क्या Puppeteer Selenium से तेज़ है? इसका उत्तर है हाँ - Puppeteer आम तौर पर Selenium से तेज़ है।
पपेटियर और सेलेनियम की गति की तुलना करने के लिए, हमने डेन्यूब-स्टोर सैंडबॉक्स का उपयोग किया और निष्पादन समय का औसत निकालते हुए ऊपर प्रस्तुत स्क्रिप्ट को 20 बार चलाया।
सेलेनियम स्पीड टेस्ट
हमने प्रयोग किया time
सेलेनियम स्क्रिप्ट के निष्पादन समय को मापने के लिए पायथन में मॉड्यूल। स्क्रिप्ट के आरंभ में आरंभ समय और अंत समय को अंत में दर्ज किया गया। इन समयों के बीच का अंतर कुल निष्पादन अवधि प्रदान करता है।
सेलेनियम के लिए प्रयुक्त सम्पूर्ण स्क्रिप्ट यहां दी गई है:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def extract(element):
title = element.find_element(By.CSS_SELECTOR, "div.preview-title").text
author = element.find_element(By.CSS_SELECTOR, "div.preview-author").text
rating = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-rating").text
price = element.find_element(By.CSS_SELECTOR, "div.preview-details p.preview-price").text
return {"title": title, "author": author, "rating": rating, "price": price}
# Start the timer
start_time = time.time()
options = webdriver.ChromeOptions()
options.add_argument("--headless")
# Create a new instance of the Chrome driver
driver = webdriver.Chrome(options=options)
url = "https://danube-webshop.herokuapp.com/"
driver.get(url)
# Click on the Crime & Thrillers category
time.sleep(1)
crime_n_thrillers = driver.find_element(By.CSS_SELECTOR, "ul[class='sidebar-list'] > li")
crime_n_thrillers.click()
time.sleep(1)
# Extract the book previews
books = driver.find_elements(By.CSS_SELECTOR, "div.shop-content li.preview")
extracted_data = []
for element in books:
data = extract(element)
extracted_data.append(data)
print(extracted_data)
# End the timer
end_time = time.time()
print(f"The whole script took: {end_time - start_time:.4f} seconds")
driver.quit()
कठपुतली स्पीड टेस्ट
कठपुतली स्क्रिप्ट के लिए, हमने उपयोग किया Date
निष्पादन समय को मापने के लिए ऑब्जेक्ट। स्क्रिप्ट के आरंभ में आरंभ समय और अंत समय को अंत में दर्ज किया गया। इन समयों के बीच का अंतर कुल निष्पादन अवधि प्रदान करता है।
यहां पपेटियर के लिए प्रयुक्त संपूर्ण स्क्रिप्ट दी गई है:
const puppeteer = require('puppeteer');
async function main() {
const start = Date.now();
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://danube-webshop.herokuapp.com/', { waitUntil: 'networkidle2' });
await page.waitForSelector('ul.sidebar-list');
await Promise.all([
page.waitForNavigation(),
page.click("ul[class='sidebar-list'] > li > a"),
]);
await page.waitForSelector("li[class='preview']");
const books = await page.evaluateHandle(
() => [...document.querySelectorAll("li[class='preview']")]
);
const processed_data = await page.evaluate(elements => {
let data = [];
elements.forEach(element => {
let title = element.querySelector("div.preview-title").innerHTML;
let author = element.querySelector("div.preview-author").innerHTML;
let rating = element.querySelector("div.preview-details > p.preview-rating").innerHTML;
let price = element.querySelector("div.preview-details > p.preview-price").innerHTML;
let result = { title, author, rating, price };
data.push(result);
});
return data;
}, books);
console.log(processed_data);
await page.close();
await browser.close();
const end = Date.now();
console.log(`Execution time: ${(end - start) / 1000} seconds`);
}
main();
प्रदर्शन परीक्षण परिणाम
प्रदर्शन परीक्षणों से पता चला कि Puppeteer सेलेनियम की तुलना में लगभग 60% तेज़ है। यह गति लाभ Puppeteer को उच्च गति वाले वेब स्क्रैपिंग और स्वचालन की आवश्यकता वाले प्रोजेक्ट के लिए अधिक उपयुक्त विकल्प बनाता है, खासकर जब क्रोमियम-आधारित ब्राउज़र के साथ काम कर रहे हों।
गति परिणाम सारांश:
नीचे दिया गया चार्ट पपेटियर और सेलेनियम के बीच प्रदर्शन अंतर को दर्शाता है:
इस संदर्भ में तेज, कुशल वेब स्क्रैपिंग की आवश्यकता वाली परियोजनाओं के लिए पपेटियर अनुप्रयोगों को बढ़ाना सर्वोत्तम विकल्प है।
पपेटियर बनाम सेलेनियम: कौन बेहतर है?
तो स्क्रैपिंग के लिए सेलेनियम और पपेटियर में से कौन बेहतर है? इस सवाल का कोई सीधा जवाब नहीं है क्योंकि यह कई कारकों पर निर्भर करता है, जैसे कि दीर्घकालिक लाइब्रेरी समर्थन, क्रॉस-ब्राउज़र समर्थन और आपकी वेब स्क्रैपिंग ज़रूरतें।
Puppeteer तेज़ है, लेकिन Selenium की तुलना में यह कम ब्राउज़रों का समर्थन करता है। Puppeteer की तुलना में Selenium ज़्यादा प्रोग्रामिंग भाषाओं का भी समर्थन करता है।
निष्कर्ष
हालाँकि, वेब स्क्रैपिंग के लिए Puppeteer या Selenium का उपयोग करना एक अच्छा विकल्प है, लेकिन अपने वेब स्क्रैपिंग प्रोजेक्ट को स्केल करना और ऑप्टिमाइज़ करना चुनौतीपूर्ण हो सकता है क्योंकि उन्नत एंटी-बॉट उपाय इन लाइब्रेरीज़ का पता लगा सकते हैं और उन्हें ब्लॉक कर सकते हैं। इससे बचने का सबसे अच्छा तरीका OneProxy जैसे वेब स्क्रैपिंग API का उपयोग करना है।
प्रॉक्सी सर्वर के साथ पपेटियर का उपयोग करना
प्रॉक्सी सर्वर के साथ Puppeteer का उपयोग करने के लिए, आप प्रॉक्सी सेटिंग्स को पास कर सकते हैं args
ब्राउज़र इंस्टेंस लॉन्च करते समय विकल्प। यहाँ एक उदाहरण है:
const puppeteer = require('puppeteer');
async function main() {
const proxyServer = 'http://your-proxy-server:port';
const browser = await puppeteer.launch({
headless: true,
args: [`--proxy-server=${proxyServer}`]
});
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
// Perform your web scraping tasks here
await browser.close();
}
main();
प्रॉक्सी सर्वर के साथ सेलेनियम का उपयोग करना
प्रॉक्सी सर्वर के साथ सेलेनियम का उपयोग करने के लिए, आप प्रॉक्सी विकल्प सेट कर सकते हैं webdriver.Proxy
क्लास. यहाँ एक उदाहरण है:
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your-proxy-server:port"
proxy.ssl_proxy = "your-proxy-server:port"
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(desired_capabilities=capabilities, options=options)
driver.get("https://example.com")
# Perform your web scraping tasks here
driver.quit()
Puppeteer और Selenium के साथ प्रॉक्सी सर्वर का उपयोग करने से IP-आधारित प्रतिबंधों को बायपास करने और अवरुद्ध होने के जोखिम को कम करने में मदद मिल सकती है, जिससे आपके वेब स्क्रैपिंग कार्यों की दक्षता बढ़ जाती है। OneProxy की घूमने वाली प्रॉक्सी इस प्रक्रिया को और अधिक अनुकूलित किया जा सकता है, जिससे निर्बाध स्क्रैपिंग अनुभव प्राप्त हो सकता है।