لنکڈ ان ڈیٹا کو کھرچنا کئی وجوہات کی بناء پر ناقابل یقین حد تک قیمتی ہوسکتا ہے:
مضمون میں اہم تکنیکوں اور حکمت عملیوں پر زور دیا جائے گا ، بشمول پراکسیوں اور ہیڈر کے ذریعہ پہلی جگہ پر پتہ لگانے سے گریز کرنے کی اہمیت بھی۔ درخواستوں کی لائبریری کو HTTP درخواستیں بنانے کے لئے استعمال کیا جائے گا جبکہ LXML HTML مواد کی تجزیہ کرنے کے لئے کام کرے گا۔
شروع کرنے سے پہلے ، یقینی بنائیں کہ آپ نے اپنی مشین پر ازگر انسٹال کرلیا ہے۔
PIP کا استعمال کرتے ہوئے مطلوبہ لائبریریوں کو انسٹال کریں:
pip install requests
pip install lxml
ازگر کا استعمال کرتے ہوئے لنکڈ ان ملازمت کی فہرستوں کو کھرچنے کے لئے یہاں ایک جامع کوڈ مثال ہے:
ہمیں متعدد ازگر لائبریریوں کی ضرورت ہوگی:
import requests
from lxml import html
import csv
import random
لنکڈ ملازمت کی تلاش کے یو آر ایل کی وضاحت کرکے شروع کریں جسے آپ کھرچنا چاہتے ہیں۔
url = 'https link'
لنکڈ ان کو مؤثر طریقے سے کھرچنے کے ل crime ، صحیح ہیڈر ، خاص طور پر صارف ایجنٹ ہیڈر ، کو کسی حقیقی براؤزر سے درخواستوں کی نقل کرنے کے لئے استعمال کرنا بہت ضروری ہے۔
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'
]
جدید دور کے پراکسی فراہم کرنے والے اکثر داخلی گردش کی حمایت کرتے ہیں ، یعنی وہ خود بخود آپ کے لئے IP پتے گھماتے ہیں۔ اس سے کسی فہرست سے پراکسیوں کو دستی طور پر منتخب کرنے کی ضرورت ختم ہوجاتی ہے۔ تاہم ، مثال کے مقاصد کے ل here ، یہاں یہ ہے کہ آپ کو ضرورت پڑنے پر پراکسی گردش کو سنبھال لیا جائے گا:
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',
}
ملازمت کی معلومات کو مؤثر طریقے سے جمع کرنے اور اسٹور کرنے کے ل you ، آپ کو ڈیٹا اسٹور کا آغاز کرکے شروع کرنا چاہئے۔ ازگر میں ، اس میں عام طور پر خالی فہرست بنانا شامل ہوتا ہے۔ یہ فہرست اسٹوریج کنٹینر کے طور پر کام کرے گی جہاں آپ ملازمت کی تفصیلات شامل کرسکتے ہیں کیونکہ وہ HTML مواد سے نکالے جاتے ہیں۔ یہ طریقہ یقینی بناتا ہے کہ معلومات کو منظم طریقے سے جمع کیا گیا ہے اور مزید پروسیسنگ یا تجزیہ کے لئے آسانی سے قابل رسائی ہے۔
job_details = []
HTTP GET درخواست بھیجنے کے بعد ، اگلا مرحلہ LXML لائبریری کا استعمال کرتے ہوئے HTML مواد کی تجزیہ کرنا ہے۔ اس سے ہمیں HTML ڈھانچے کے ذریعے تشریف لے جانے اور اس ڈیٹا کی نشاندہی کرنے کی اجازت ہوگی جو ہم نکالنا چاہتے ہیں۔
# Set random User-Agent and proxy with IP authorization method
headers['user-agent'] = random.choice(user_agents)
proxies = {
'http': IP:PORT,
'https': IP:PORT
}
# Send an HTTP GET request to the URL
response = requests.get(url=url, headers=headers, proxies=proxies)
parser = html.fromstring(response.content)
ایک بار جب HTML مواد کو تجزیہ کیا جاتا ہے تو ، ہم ملازمت کی مخصوص تفصیلات جیسے عنوان ، کمپنی کا نام ، مقام ، اور XPath کے سوالات کا استعمال کرتے ہوئے نوکری URL نکال سکتے ہیں۔ یہ تفصیلات ایک لغت میں محفوظ ہیں اور ایک فہرست میں شامل ہیں۔
# Extract job details from the HTML content
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
# Specify the proxy server address with username and password
proxy_address = ""
proxy_username = ""
proxy_password = ""
# Set up Chrome options with the proxy and authentication
chrome_options = Options()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
chrome_options.add_argument(f'--proxy-auth={proxy_username}:{proxy_password}')
# Create a WebDriver instance with selenium-wire
driver = wiredriver.Chrome(options=chrome_options)
url = 'https link'
# Perform your Selenium automation with the enhanced capabilities of selenium-wire
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()
درخواستوں اور ایل ایکس ایم ایل لائبریریوں کے ساتھ ازگر کا استعمال کرتے ہوئے لنکڈ ان سے ڈیٹا نکالنا جاب مارکیٹ کا تجزیہ کرنے اور اہلکاروں کی بھرتی کا ایک طاقتور طریقہ پیش کرتا ہے۔ ہموار سکریپنگ کے عمل کو یقینی بنانے کے لئے ، تیز رفتار والے ڈیٹا سینٹر پراکسیوں کو استعمال کیا جاتا ہے ، اسی طرح ایک اعلی اعتماد کے عنصر کے ساتھ آئی ایس پی پراکسی بھی استعمال کی جاتی ہے ، جو خودکار اعمال پر بلاکس کے خطرے کو کم کرتی ہے۔
تبصرے: 0