خراش دادن غیرقابل خراش در پایتون با استفاده از 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 را امتحان کنید!