ازگر کا استعمال کرتے ہوئے یوٹیوب کو کھرچنے کا طریقہ

تبصرے: 0

یوٹیوب سے ڈیٹا کو کھرچنا اس کے متحرک مواد اور اینٹی سکریپنگ اقدامات کی وجہ سے مشکل ہوسکتا ہے۔ تاہم ، صحیح ٹولز اور تکنیکوں کے ساتھ ، آپ مفید معلومات کو موثر انداز میں نکال سکتے ہیں۔ اس مضمون میں ، ہم آپ کو ازگر ، پلے رائٹ ، اور ایل ایکس ایم ایل کا استعمال کرتے ہوئے یوٹیوب ویڈیو ڈیٹا کو کھرچنے کے عمل سے گزریں گے۔

ماحولیاتی سیٹ اپ

PIP کا استعمال کرتے ہوئے ضروری لائبریریوں کو انسٹال کریں:

pip install playwright 
pip install lxml

پلے رائٹ براؤزر بائنریز انسٹال کریں:

playwright install

صرف کرومیم براؤزر بائنریز انسٹال کرنے کے لئے مندرجہ ذیل کمانڈ استعمال کریں:

playwright install chromium

ازگر کے ساتھ YouTube ڈیٹا کو ویب کھرچنے کے ل you ، آپ کو بنیادی طور پر درج ذیل لائبریریوں کی ضرورت ہوگی:

  1. ڈرامہ نگار: ہیڈ لیس براؤزرز کو خود کار بنانے کے لئے ایک طاقتور لائبریری ، آپ کو ویب صفحات کے ساتھ بات چیت کرنے کے قابل بناتا ہے گویا آپ حقیقی صارف ہیں۔
  2. LXML: دستاویزات سے استفسار کرنے کے لئے ایکس پاتھ کی حمایت کرتے ہوئے ، ازگر میں XML اور HTML پروسیسنگ کے لئے ایک تیز اور خصوصیت سے بھرپور لائبریری ؛
  3. CSV ماڈیول: CSV فائل میں نکالے ہوئے ڈیٹا کو بچانے کے لئے ایک بلٹ میں ازگر لائبریری۔

مرحلہ 1: مطلوبہ لائبریریوں کو درآمد کریں

import asyncio
from playwright.async_api import Playwright, async_playwright
from lxml import html
import csv

مرحلہ 2: ہیڈ لیس براؤزر آٹومیشن

ڈرامہ نگار کے ساتھ ہیڈ لیس براؤزر لانچ کریں ، یوٹیوب ویڈیو یو آر ایل پر جائیں ، اور صفحہ کو مکمل طور پر لوڈ کرنے کا انتظار کریں۔

مزید تبصرے لوڈ کرنے کے لئے صفحے کو سکرول کریں۔

browser = await playwright.chromium.launch(headless=True)
context = await browser.new_context()
page = await context.new_page()

# Navigating to the YouTube video URL
await page.goto("https://www.youtube.com/watch?v=Ct8Gxo8StBU", wait_until="networkidle")

# Scrolling down to load more comments
for _ in range(20):
    await page.mouse.wheel(0, 200)
    await asyncio.sleep(0.2)

# Giving some time for additional content to load
await page.wait_for_timeout(1000)

مرحلہ 3: HTML مواد کی تجزیہ

ڈرامہ رائٹ کا استعمال کرتے ہوئے پیج کے HTML مواد کو نکالیں اور اسے LXML کے ساتھ پارس کریں۔

# Extracting the page content
page_content = await page.content()

# Parsing the HTML content
parser = html.fromstring(page_content)

مرحلہ 4: ڈیٹا نکالنے

ایکس پاتھ اظہار کا استعمال کرتے ہوئے مطلوبہ ڈیٹا پوائنٹس (جیسے عنوان ، چینل ، تبصرے) نکالیں۔

ویڈیو میٹا ڈیٹا اور تبصرے سمیت تمام متعلقہ ڈیٹا اکٹھا کریں۔

# Extracting video data
title = parser.xpath('//div[@id="title"]/h1/yt-formatted-string/text()')[0]
channel = parser.xpath('//yt-formatted-string[@id="text"]/a/text()')[0]
channel_link = 'https://www.youtube.com' + parser.xpath('//yt-formatted-string[@id="text"]/a/@href')[0]
posted = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[2]
total_views = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[0]
total_comments = parser.xpath('//h2[@id="count"]/yt-formatted-string/span/text()')[0]
comments_list = parser.xpath('//yt-attributed-string[@id="content-text"]/span/text()')

مرحلہ 5: ڈیٹا کی بچت

آسان تجزیہ اور اسٹوریج کے لئے نکالے گئے ڈیٹا کو CSV فائل میں محفوظ کریں۔

# Saving the data to a CSV file
with open('youtube_video_data.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(["Title", "Channel", "Channel Link", "Posted", "Total Views", "Total Comments", "Comments"])
    writer.writerow([title, channel, channel_link, posted, total_views, total_comments, ", ".join(comments_list)])

پراکسی عمل درآمد

پراکسی ویب سکریپنگ میں ایک اہم کردار ادا کرتے ہیں ، خاص طور پر جب بڑے پیمانے پر ڈیٹا نکالنے یا یوٹیوب جیسے سخت اینٹی بوٹ اقدامات والی سائٹوں سے نمٹنے کے لئے۔ ڈرامہ رائٹ اسکرپٹ میں پراکسیوں کو کس طرح نافذ کیا جاتا ہے۔

پراکسی سیٹ اپ:

  1. پلے رائٹ میں پراکسی پیرامیٹر۔ Chromium.launch () تمام براؤزر ٹریفک کو ایک مخصوص پراکسی سرور کے ذریعے روٹ کرنے کے لئے استعمال ہوتا ہے۔
  2. پراکسی سرور کی تفصیلات ، بشمول سرور ایڈریس ، صارف نام ، اور پاس ورڈ ، کو تشکیل دینا ضروری ہے۔

browser = await playwright.chromium.launch(
        headless=True,
        proxy={"server": "http://your_proxy_ip:port", "username": "your_username", "password": "your_password"}
    )

پراکسی استعمال کرنے کے فوائد:

  • آئی پی ماسکنگ: پراکسی آپ کے اصل IP پتے کو چھپاتے ہیں ، جس سے مسدود ہونے کے امکانات کو کم کیا جاتا ہے۔
  • درخواست کی تقسیم: پراکسیوں کو گھومنے سے ، آپ متعدد صارفین سے ٹریفک کی نقالی کرتے ہوئے مختلف IP پتے پر درخواستیں تقسیم کرسکتے ہیں۔
  • محدود مواد تک رسائی: پراکسی علاقائی پابندیوں کو نظرانداز کرنے یا ایسے مواد تک رسائی میں مدد فراہم کرسکتی ہے جو کچھ آئی پی حدود تک محدود ہوسکتی ہیں۔

یہ عمل درآمد یقینی بناتا ہے کہ آپ کے کھرچنے کی سرگرمیوں کا پتہ لگانے اور یوٹیوب کے اینٹی بوٹ میکانزم کے ذریعہ مسدود ہونے کا امکان کم ہے۔

مکمل کوڈ پر عمل درآمد

ذیل میں پلے رائٹ اور ایل ایکس ایم ایل کا استعمال کرتے ہوئے یوٹیوب ویڈیو ڈیٹا کو کھرچنے کا مکمل کوڈ ہے ، جس میں پراکسی عمل درآمد بھی شامل ہے۔

import asyncio
from playwright.async_api import Playwright, async_playwright
from lxml import html
import csv

# Asynchronous function to run Playwright and extract data
async def run(playwright: Playwright) -> None:
    # Launching headless browser with proxy settings
    browser = await playwright.chromium.launch(
        headless=True,
        proxy={"server": "http://your_proxy_ip:port", "username": "your_username", "password": "your_password"}
    )
    context = await browser.new_context()
    page = await context.new_page()

    # Navigating to the YouTube video URL
    await page.goto("https://www.youtube.com/watch?v=Ct8Gxo8StBU", wait_until="networkidle")

    # Scrolling down to load more comments
    for _ in range(20):
        await page.mouse.wheel(0, 200)
        await asyncio.sleep(0.2)
    
    # Giving some time for additional content to load
    await page.wait_for_timeout(1000)
    
    # Extracting the page content
    page_content = await page.content()

    # Closing browser
    await context.close()
    await browser.close()

    # Parsing the HTML content
    parser = html.fromstring(page_content)

    # Extracting video data
    title = parser.xpath('//div[@id="title"]/h1/yt-formatted-string/text()')[0]
    channel = parser.xpath('//yt-formatted-string[@id="text"]/a/text()')[0]
    channel_link = 'https://www.youtube.com' + parser.xpath('//yt-formatted-string[@id="text"]/a/@href')[0]
    posted = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[2]
    total_views = parser.xpath('//yt-formatted-string[@id="info"]/span/text()')[0]
    total_comments = parser.xpath('//h2[@id="count"]/yt-formatted-string/span/text()')[0]
    comments_list = parser.xpath('//yt-attributed-string[@id="content-text"]/span/text()')

    # Saving the data to a CSV file
    with open('youtube_video_data.csv', 'w', newline='', encoding='utf-8') as file:
        writer = csv.writer(file)
        writer.writerow(["Title", "Channel", "Channel Link", "Posted", "Total Views", "Total Comments", "Comments"])
        writer.writerow([title, channel, channel_link, posted, total_views, total_comments, ", ".join(comments_list)])

# Running the asynchronous function
async def main():
    async with async_playwright() as playwright:
        await run(playwright)

asyncio.run(main())

جب یوٹیوب سے ڈیٹا کو کھرچنے کے لئے ماحول قائم کرتے ہیں تو ، پلیٹ فارم کی پابندیوں کو مؤثر طریقے سے روکنے کے لئے پراکسیوں کے استعمال پر توجہ مرکوز کرنا بہت ضروری ہے۔ احتیاط سے پراکسی سرورز کا انتخاب بلاک خطرات کو کم سے کم کرنے اور آپریشن گمنامی کو یقینی بنانے کے لئے ضروری ہے۔ جامد ISP پراکسیوں کو ان کی تیز رفتار رابطے کی رفتار اور استحکام کے ل highly انتہائی سفارش کی جاتی ہے۔ مزید برآں ، رہائشی پراکسی ایک اعلی اعتماد کے عنصر کے ساتھ متحرک IP پتے پیش کرتے ہیں ، جس کی وجہ سے وہ یوٹیوب کے سیکیورٹی سسٹم کے ذریعہ پرچم لگاتے ہیں۔ یوٹیوب کی خدمت کی شرائط کی خلاف ورزیوں کو روکنے کے لئے ڈیٹا اکٹھا کرنے کے دوران اخلاقی معیارات پر عمل پیرا ہونا بھی ضروری ہے۔

تبصرے:

0 تبصرے