یہ مضمون Python اور Playwright کا استعمال کرتے ہوئے Pinterest کو اسکریپ کرنے کے طریقے کا جائزہ لیتا ہے، جو ایک مضبوط خودکار لائبریری ہے۔ Pinterest، جو اپنے امیر بصری مواد کے لیے جانا جاتا ہے، ڈیٹا تجزیے یا خودکار پہلوں کے لیے ایک زرخیز میدان کے طور پر کام کرتا ہے۔ خاص طور پر، تلاش کے نتائج سے امیج URLs نکالنا تحقیق یا تجارتی منصوبوں کے لیے اہم ہو سکتا ہے۔
Playwright متعدد براؤزرز کے درمیان انٹرایکٹو سیشنز کے خودکار بنانے کو آسان بناتا ہے۔ اس میں نیٹ ورک درخواستوں کو روکنے جیسی خصوصیات ہیں، جو ٹریفک سے براہ راست ڈیٹا نکالنے کی اجازت دیتی ہیں۔ اس کے علاوہ، اس کی نو رینڈر موڈ میں کام کرنے کی صلاحیت اسکریپنگ کی کارکردگی اور اسکیل ایبلیٹی کو بڑھاتی ہے۔ پراکسیز کا استعمال، اگرچہ آپشنل ہے، گمنامی کو یقینی بنانے اور ممکنہ بلاکس کو بائی پاس کرنے میں مدد کے لیے تجویز کیا جاتا ہے، اس طرح Playwright کو Pinterest سے بصری مواد حاصل کرنے کے لیے ایک پسندیدہ ٹول کے طور پر مضبوط کرتا ہے۔
شروع کرنے سے پہلے، آپ کو اپنے Python ماحول میں Playwright انسٹال کرنا ہوگا۔ آپ اسے pip کا استعمال کرتے ہوئے انسٹال کر سکتے ہیں:
pip install playwright
ایک بار انسٹال ہونے کے بعد ، آپ کو براؤزر بائنریز انسٹال کرنے کی ضرورت ہوگی:
playwright install
اب، آئیے ایک بنیادی اسکرپٹ دیکھتے ہیں جو Pinterest امیج URLs کو اسکریپ کرتا ہے۔
اس اسکرپٹ میں، جس کا مکمل ورژن نیچے پیش کیا گیا ہے، درج ذیل عناصر شامل ہیں:
مینی فنکشن صارف کی ان پٹ کی بنیاد پر Pinterest سرچ کوئری URL بناتا ہے، جیسے کہ https://in.pinterest.com/search/pins/?q=halloween%20decor، اور پھر اسے capture_images_from_pinterest فنکشن کو پاس کرتا ہے۔
Playwright پیج نیٹ ورک ردعمل سننے کے لئے page.on('response', ...) کا استعمال کرتا ہے۔
handle_response فنکشن نیٹ ورک ردعمل کو فلٹر کرتا ہے، یہ اس بات کو یقینی بناتا ہے کہ صرف وہ ردعمل پکڑے جائیں جن میں ریسورس ٹائپ امیجز ہوں اور جن کی URLs .jpg پر ختم ہو رہی ہوں۔
امیج URLs کو اکٹھا کرنے کے بعد، ہم انہیں ایک CSV فائل pinterest_images.csv میں محفوظ کرتے ہیں، تاکہ اسکریپ شدہ ڈیٹا کو برآمد کرنا اور تجزیہ کرنا آسان ہو جائے۔
یہ رہا Python کا کوڈ جو Pinterest کے سرچ نتائج کو اسکریپ کرتا ہے اور تمام امیج URLs نکالتا ہے:
import asyncio
from playwright.async_api import async_playwright
async def capture_images_from_pinterest(url):
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
# Store image URLs with '.jpg' ending
image_urls = []
# Function to intercept and process network responses
page.on('response', lambda response: handle_response(response, image_urls))
# Navigate to the URL
await page.goto(url)
# Wait for network activity to settle (adjust if needed)
await page.wait_for_timeout(10000)
# Close the browser
await browser.close()
return image_urls
# Handler function to check for .jpg image URLs
def handle_response(response, image_urls):
if response.request.resource_type == 'image':
url = response.url
if url.endswith('.jpg'):
image_urls.append(url)
# Main function to run the async task
async def main(query):
url = f"https://in.pinterest.com/search/pins/?q={query}"
images = await capture_images_from_pinterest(url)
# Save images to a CSV file
with open('pinterest_images.csv', 'w') as file:
for img_url in images:
file.write(f"{img_url}\n")
print(f"Saved {len(images)} image URLs to pinterest_images.csv")
# Run the async main function
query = 'halloween decor'
asyncio.run(main(query))
Pinterest کو اسکریپ کرنے سے ایک ہی IP ایڈریس سے زیادہ درخواستیں کرنے پر ریسپانس کی حد یا حتیٰ کہ بین لگ سکتے ہیں۔ پراکسیز اس مسئلے کو کم کرنے میں مدد کرتی ہیں کیونکہ یہ آپ کی درخواستوں کو مختلف IP ایڈریسز کے ذریعے روٹ کرتی ہیں، اس طرح یہ ظاہر ہوتا ہے جیسے متعدد صارفین Pinterest کو براؤز کر رہے ہیں۔
پراکسیز کا استعمال کیوں کریں:
آپ Playwright کے ساتھ پراکسیز کو آسانی سے سیٹ کر سکتے ہیں لانچ میتھڈ میں پراکسی آرگومنٹ کا استعمال کرتے ہوئے۔ اس مثال میں، “http://your-proxy-address:port” کو اپنے پراکسی سرور کے ایڈریس، پورٹ نمبر، اور پراکسی اسناد سے بدلیں۔
async def capture_images_from_pinterest(url):
async with async_playwright() as p:
# Add proxy here
browser = await p.chromium.launch(headless=True, proxy={"server": "http://your-proxy-address:port", "username": "username", "password": "password"})
page = await browser.new_page()
اس کے نتیجے میں، Playwright کو پراکسی کے ساتھ مربوط کرنا اسکریپنگ آٹومیشن کی مؤثریت کو بڑھاتا ہے۔ یہ امتزاج نہ صرف اینٹی بوٹ میکنزم کے ذریعے ہونے والے خطرات کو کم کرتا ہے بلکہ ڈیٹا اکٹھا کرنے کے عمل کی مجموعی کارکردگی کو بھی بہتر بناتا ہے۔
کچھ چیلنجز ہیں جن کا سامنا صارفین کو Playwright کا استعمال کرتے ہوئے Pinterest ڈیٹا اسکریپ کرنے میں ہو سکتا ہے:
Playwright کا استعمال پراکسیز کے ساتھ اور ہیڈ لیس موڈ میں ان چیلنجز کو مؤثر طریقے سے کم کر سکتا ہے، بلاک ہونے کے خطرے کو کم کرتا ہے اور ڈیٹا نکالنے کی کارکردگی کو بڑھاتا ہے۔
تبصرے: 0