یوٹیوب سے ڈیٹا کو کھرچنا اس کے متحرک مواد اور اینٹی سکریپنگ اقدامات کی وجہ سے مشکل ہوسکتا ہے۔ تاہم ، صحیح ٹولز اور تکنیکوں کے ساتھ ، آپ مفید معلومات کو موثر انداز میں نکال سکتے ہیں۔ اس مضمون میں ، ہم آپ کو ازگر ، پلے رائٹ ، اور ایل ایکس ایم ایل کا استعمال کرتے ہوئے یوٹیوب ویڈیو ڈیٹا کو کھرچنے کے عمل سے گزریں گے۔
PIP کا استعمال کرتے ہوئے ضروری لائبریریوں کو انسٹال کریں:
pip install playwright
pip install lxml
پلے رائٹ براؤزر بائنریز انسٹال کریں:
playwright install
صرف کرومیم براؤزر بائنریز انسٹال کرنے کے لئے مندرجہ ذیل کمانڈ استعمال کریں:
playwright install chromium
ازگر کے ساتھ YouTube ڈیٹا کو ویب کھرچنے کے ل you ، آپ کو بنیادی طور پر درج ذیل لائبریریوں کی ضرورت ہوگی:
import asyncio
from playwright.async_api import Playwright, async_playwright
from lxml import html
import csv
ڈرامہ نگار کے ساتھ ہیڈ لیس براؤزر لانچ کریں ، یوٹیوب ویڈیو یو آر ایل پر جائیں ، اور صفحہ کو مکمل طور پر لوڈ کرنے کا انتظار کریں۔
مزید تبصرے لوڈ کرنے کے لئے صفحے کو سکرول کریں۔
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)
ڈرامہ رائٹ کا استعمال کرتے ہوئے پیج کے HTML مواد کو نکالیں اور اسے LXML کے ساتھ پارس کریں۔
# Extracting the page content
page_content = await page.content()
# 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()')
آسان تجزیہ اور اسٹوریج کے لئے نکالے گئے ڈیٹا کو 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)])
پراکسی ویب سکریپنگ میں ایک اہم کردار ادا کرتے ہیں ، خاص طور پر جب بڑے پیمانے پر ڈیٹا نکالنے یا یوٹیوب جیسے سخت اینٹی بوٹ اقدامات والی سائٹوں سے نمٹنے کے لئے۔ ڈرامہ رائٹ اسکرپٹ میں پراکسیوں کو کس طرح نافذ کیا جاتا ہے۔
پراکسی سیٹ اپ:
browser = await playwright.chromium.launch(
headless=True,
proxy={"server": "http://your_proxy_ip:port", "username": "your_username", "password": "your_password"}
)
پراکسی استعمال کرنے کے فوائد:
یہ عمل درآمد یقینی بناتا ہے کہ آپ کے کھرچنے کی سرگرمیوں کا پتہ لگانے اور یوٹیوب کے اینٹی بوٹ میکانزم کے ذریعہ مسدود ہونے کا امکان کم ہے۔
ذیل میں پلے رائٹ اور ایل ایکس ایم ایل کا استعمال کرتے ہوئے یوٹیوب ویڈیو ڈیٹا کو کھرچنے کا مکمل کوڈ ہے ، جس میں پراکسی عمل درآمد بھی شامل ہے۔
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