برنامه نویسی

خراش دادن غیرقابل خراش در پایتون با استفاده از Playwright

خودکار کردن گردش کار خود با اسکریپت ها برای به دست آوردن نتایج کارآمد بهتر از این است که به صورت دستی و پر زحمت انجام شود. خراش دادن وب همه چیز در مورد استخراج داده ها در قالبی تمیز و خوانا است که توسعه دهندگان، تحلیلگران داده و دانشمندان آن را برای خواندن و دانلود کل صفحه وب از داده های آن به صورت اخلاقی به کار می گیرند.

در این مقاله، مزایای استفاده از زیرساخت Bright Data را که با استفاده از مرورگر Scraping به مجموعه داده‌های بزرگ با شبکه‌های پراکسی عالی متصل می‌شود، یاد خواهید گرفت و بررسی خواهید کرد.

بیا شروع کنیم.

Bright Data چیست؟

Bright Data یک پلت فرم داده وب است که به سازمان‌ها، کسب‌وکارهای کوچک و مؤسسات دانشگاهی کمک می‌کند تا داده‌های عمومی وب عمومی را به طور کارآمد، قابل اعتماد و انعطاف‌پذیر بازیابی کنند. Bright Data شامل مجموعه داده های آماده برای استفاده است که مطابق با GDPR و CCPA هستند.

نمایشنامه نویس چیست؟

نمایشنامه‌نویس برای پیمایش وب‌سایت‌های هدف استفاده می‌شود، درست مانند عملکرد Puppeteer که با کد HTML سایت تعامل می‌کند تا داده‌های مورد نیاز شما را استخراج کند.

نصب و راه اندازی

قبل از نوشتن یک اسکریپت، بررسی کنید که پایتون را با استفاده از این دستور در رابط خط فرمان (CLI) یا ترمینال روی سیستم خود نصب کرده اید یا خیر:

    python --version
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر پس از اجرای دستور، نسخه در ترمینال وجود نداشت، به وب سایت رسمی پایتون بروید تا آن را در دستگاه محلی خود دانلود کنید.

اتصال به مرورگر Scraping

برای دسترسی به داشبورد مدیریت مرورگر Scraping برای ادغام پروکسی با برنامه خود، یک حساب کاربری جدید در Bright Data ایجاد کنید.

در سمت چپ داشبورد، روی آن کلیک کنید پروکسی ها و Scraping Infra آیکون.

پراکسی ها و خراش دادن زیر

با پیمایش به پایین صفحه، را انتخاب کنید مرورگر Scraping. پس از آن بر روی آن کلیک کنید شروع کنید دکمه.

مرورگر خراش دادن

صفحه بعدی به شما امکان می دهد نام پروکسی را تغییر دهید. کلیک کنید بر روی پروکسی اضافه کنید را فشار دهید تا یک پیام نمایش سریع ظاهر شود. با کلیک کردن روی، تغییر پیش فرض را بپذیرید آره دکمه.

نام گذاری پروکسی

میزبان، نام کاربری و رمز عبور

بعد، روی نمونه کد و ادغام را بررسی کنید دکمه برای پیکربندی کد در پایتون.

ایجاد متغیرهای محیطی در پایتون

متغیرهای محیطی کلیدهای مخفی و اعتبارنامه‌ها را در قالب مقادیر پیکربندی می‌کنند تا برنامه را در طول توسعه در حال اجرا نگه دارند و از دسترسی غیرمجاز جلوگیری کنند.

مانند یک Node.js برنامه، یک فایل جدید به نام ایجاد کنید .env در دایرکتوری ریشه اما ابتدا باید بسته پایتون را نصب کنید python-dotenv.

    pip3 install python-dotenv
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بسته جفت های کلید-مقدار مجموعه متغیرهای محیطی را می خواند.

برای تایید نصب بسته python-dotenv، این دستور را اجرا کنید که تمام بسته های نصب شده موجود را لیست می کند:

    pip3 list
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس این کد را در قسمت کپی پیست کنید .env فایل:

.env

    USERNAME="<user-name>"
    HOST="<host>"
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مقادیر را جایگزین کنید نقل قول با مقادیر Bright Data.

ایجاد اسکراپر وب با Playwright

در پوشه پروژه، یک فایل جدید به نام ایجاد کنید app.py برای رسیدگی به خراشیدن وب.

نصب پکیج ها
شما باید این دو کتابخانه را نصب کنید، asyncio، و نمایشنامه نویس، با این دستور:

    pip3 install asyncio
    pip3 install playwright
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • Asyncio: این یک کتابخانه برای نوشتن کد همزمان با استفاده از دستور async/wait است
  • نمایشنامه نویس: این ماژول روشی برای راه اندازی یک نمونه مرورگر ارائه می دهد

حالا این کد را کپی پیست کنید:

app.py

    import asyncio
    import os
    from playwright.async_api import async_playwright
    from dotenv import load_dotenv

    load_dotenv()

    auth = os.getenv("USERNAME")
    host = os.getenv("HOST")

    browser_url = f'wss://{auth}@{host}'

    async def main():
        async with async_playwright() as pw:
            print('connecting');
            browser = await pw.chromium.connect_over_cdp(browser_url)
            print('connected');
            page = await browser.new_page()
            print('goto')
            await page.goto('http://lumtest.com/myip.json', timeout=120000)
            print('done, evaluating')
            print(await page.evaluate('()=>document.documentElement.outerHTML'))
            await browser.close()

    asyncio.run(main())
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کد بالا کارهای زیر را انجام می دهد:

  • ماژول های لازم مانند asyncio را وارد کنید، async_playwright، load_dotenv، و os
  • را load_dotenv() مسئول خواندن متغیرها از روی است .env فایل
  • را os.getenv() متد مقادیر کلید متغیر محیطی را برمی گرداند
  • را main() تابع ناهمزمان است و در داخل تابع، ماژول نمایشنامه نویس به منطقه داده متصل می شود
  • را new_page() روش HTML صفحه را دریافت می کند و با goto روش، با فاصله زمانی 2 دقیقه به سایت مقصد منتهی می شود
  • در حالی که page.evaluate() متد صفحه را پرس و جو می کند و پس از دسترسی به عناصر صفحه و روشن کردن رویدادها، نتیجه را چاپ می کند
  • بستن مرورگر با browser.close() روش

برای تست این برنامه با دستور زیر اجرا کنید:

    python app.py
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نتیجه

چشم انداز ارزیابی و استخراج داده های معنادار، قلب و عملکرد آنچه Bright Data ارائه می دهد است.

این آموزش به شما نشان می دهد که چگونه از مرورگر Scraping در پایتون با بسته Playwright برای خواندن داده ها از یک وب سایت استفاده کنید.

امروز Bright Data را امتحان کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا