लिंक्डइन डेटा को स्क्रैप करना कई कारणों से अविश्वसनीय रूप से मूल्यवान हो सकता है:
लेख महत्वपूर्ण तकनीकों और रणनीतियों पर जोर देगा, जिसमें पहले स्थान पर प्रॉक्सी और हेडर के माध्यम से पता लगाने से बचने का महत्व शामिल है। अनुरोध लाइब्रेरी का उपयोग HTTP अनुरोध करने के लिए किया जाएगा जबकि LXML को HTML सामग्री को पार्स करने के लिए नियोजित किया जाएगा।
शुरू करने से पहले, सुनिश्चित करें कि आपने अपनी मशीन पर पायथन स्थापित किया है।
PIP का उपयोग करके आवश्यक पुस्तकालयों को स्थापित करें:
pip install requests
pip install lxml
यहाँ पायथन का उपयोग करके लिंक्डइन जॉब लिस्टिंग को स्क्रैप करने के लिए एक व्यापक कोड उदाहरण है:
हमें कई पायथन पुस्तकालयों की आवश्यकता होगी:
import requests
from lxml import html
import csv
import random
लिंक्डइन जॉब सर्च URL को परिभाषित करके शुरू करें जिसे आप स्क्रैप करना चाहते हैं।
url = 'https link'
लिंक्डइन को प्रभावी ढंग से स्क्रैप करने के लिए, एक वास्तविक ब्राउज़र से अनुरोधों की नकल करने के लिए सही हेडर, विशेष रूप से उपयोगकर्ता-एजेंट हेडर का उपयोग करना महत्वपूर्ण है।
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
]
आधुनिक-दिन प्रॉक्सी प्रदाता अक्सर आंतरिक रोटेशन का समर्थन करते हैं, जिसका अर्थ है कि वे स्वचालित रूप से आपके लिए आईपी पते को घुमाते हैं। यह एक सूची से मैन्युअल रूप से प्रॉक्सी का चयन करने की आवश्यकता को समाप्त करता है। हालाँकि, चित्रण उद्देश्यों के लिए, यहाँ कैसे है कि आप यदि आवश्यक हो तो प्रॉक्सी रोटेशन को संभाल लेंगे:
proxies = {
'http': random.choice(proxies),
'https': random.choice(proxies)
}
सफल लिंक्डइन स्क्रैपिंग हेडर के सही सेटअप पर टिका है जो एक वास्तविक ब्राउज़र के व्यवहार का अनुकरण करता है। उचित रूप से कॉन्फ़िगर किए गए हेडर न केवल एंटी-बॉट सुरक्षा प्रणालियों को दरकिनार करने में सहायता करते हैं, बल्कि आपकी स्क्रैपिंग गतिविधियों को अवरुद्ध करने की संभावना को भी कम कर देते हैं।
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'dnt': '1',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
}
नौकरी पोस्टिंग जानकारी को प्रभावी ढंग से एकत्र करने और संग्रहीत करने के लिए, आपको डेटा स्टोर को शुरू करके शुरू करना चाहिए। पायथन में, इसमें आमतौर पर एक खाली सूची बनाना शामिल होता है। यह सूची एक स्टोरेज कंटेनर के रूप में काम करेगी जहां आप नौकरी विवरण जोड़ सकते हैं क्योंकि वे HTML सामग्री से निकाले जाते हैं। यह विधि यह सुनिश्चित करती है कि जानकारी व्यवस्थित रूप से एकत्र की जाती है और आगे की प्रक्रिया या विश्लेषण के लिए आसानी से सुलभ है।
job_details = []
HTTP GET अनुरोध भेजने के बाद, अगला कदम LXML लाइब्रेरी का उपयोग करके HTML सामग्री को पार्स करना है। यह हमें HTML संरचना के माध्यम से नेविगेट करने और उस डेटा की पहचान करने की अनुमति देगा जिसे हम निकालना चाहते हैं।
# IP प्राधिकरण विधि के साथ यादृच्छिक उपयोगकर्ता-एजेंट और प्रॉक्सी सेट करें
headers['user-agent'] = random.choice(user_agents)
proxies = {
'http': IP:PORT,
'https': IP:PORT
}
# URL को HTTP प्राप्त करें अनुरोध भेजें
response = requests.get(url=url, headers=headers, proxies=proxies)
parser = html.fromstring(response.content)
एक बार HTML सामग्री पार्स हो जाने के बाद, हम XPATH क्वेरी का उपयोग करके शीर्षक, कंपनी का नाम, स्थान और जॉब URL जैसे विशिष्ट नौकरी विवरण निकाल सकते हैं। इन विवरणों को एक शब्दकोश में संग्रहीत किया जाता है और एक सूची में जोड़ा जाता है।
# HTML सामग्री से नौकरी का विवरण निकालें
for job in parser.xpath('//ul[@class="jobs-search__results-list"]/li'):
title = ''.join(job.xpath('.//div/a/span/text()')).strip()
company = ''.join(job.xpath('.//div/div[2]/h4/a/text()')).strip()
location = ''.join(job.xpath('.//div/div[2]/div/span/text()')).strip()
job_url = job.xpath('.//div/a/@href')[0]
job_detail = {
'title': title,
'company': company,
'location': location,
'job_url': job_url
}
job_details.append(job_detail)
जॉब डेटा एकत्र करने के बाद, इसे CSV फ़ाइल में सहेजें।
with open('linkedin_jobs.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['title', 'company', 'location', 'job_url']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for job_detail in job_details:
writer.writerow(job_detail)
यहाँ पूरा कोड है, ऊपर के सभी वर्गों को मिलाकर:
from selenium.webdriver.chrome.options import Options
from seleniumwire import webdriver as wiredriver
from selenium.webdriver.common.by import By
import csv
# उपयोगकर्ता नाम और पासवर्ड के साथ प्रॉक्सी सर्वर पता निर्दिष्ट करें
proxy_address = ""
proxy_username = ""
proxy_password = ""
# प्रॉक्सी और प्रमाणीकरण के साथ क्रोम विकल्प सेट करें
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')
# सेलेनियम-वायर के साथ एक WebDriver उदाहरण बनाएं
driver = wiredriver.Chrome(options=chrome_options)
url = 'https link'
# सेलेनियम-तार की बढ़ी हुई क्षमताओं के साथ अपने सेलेनियम स्वचालन का प्रदर्शन करें
driver.get(url)
job_details = []
all_elements = driver.find_elements(By.XPATH,
'//*[@id="main-content"]/section/ul/li')
for i in all_elements:
title = i.find_element(By.XPATH,
'.//div/div/h3').text
company = i.find_element(By.XPATH, './/div/div[2]/h4/a').text
location = i.find_element(By.XPATH, './/div/div[2]/div/span').text
job_url = i.find_element(By.XPATH,
'.//div/a').get_attribute('href')
job_detail = {
'title': title,
'company': company,
'location': location,
'job_url': job_url
}
job_details.append(job_detail)
with open('linkedin_jobs.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['title', 'company', 'location', 'job_url']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for job_detail in job_details:
writer.writerow(job_detail)
driver.quit()
अनुरोधों और LXML पुस्तकालयों के साथ पायथन का उपयोग करके लिंक्डइन से डेटा निकालना नौकरी बाजार का विश्लेषण करने और कर्मियों की भर्ती करने के लिए एक शक्तिशाली तरीका प्रदान करता है। एक चिकनी स्क्रैपिंग प्रक्रिया को सुनिश्चित करने के लिए, उच्च गति वाले डेटासेंटर प्रॉक्सी का उपयोग किया जाता है, साथ ही एक उच्च ट्रस्ट कारक के साथ आईएसपी प्रॉक्सी, जो स्वचालित कार्यों पर ब्लॉकों के जोखिम को कम करता है।
टिप्पणियाँ: 0