প্রকল্প সম্পর্কে

Pydoll হলো WebDriver ছাড়াই Chromium-ভিত্তিক ব্রাউজার অটোমেট করার একটি পাইথন লাইব্রেরি। এটি WebSocket-এর মাধ্যমে সরাসরি DevTools Protocol দিয়ে Chrome-এর সাথে সংযোগ করে, তাই কোনো driver binary নেই এবং navigator.webdriver ফ্ল্যাগও প্রকাশ পায় না। API-টি asynchronous এবং সম্পূর্ণ typed, asyncio-এর উপর নির্মিত এবং mypy দিয়ে যাচাই করা। README-তে বর্ণিত প্রধান সক্ষমতাগুলো: - Humanized ইন্টারঅ্যাকশন: Bezier কার্ভ বরাবর মাউস মুভমেন্ট, বাস্তবসম্মত টাইপিং ও স্ক্রল ফিজিক্স, humanize=True দিয়ে সক্রিয় করা যায়। README-তে বলা হয়েছে, ব্রাউজার ও IP reputation-এর উপর নির্ভর করে Cloudflare Turnstile বা reCAPTCHA v3-এর মতো behavioral চ্যালেঞ্জ পাস করার জন্য এটি প্রায়ই যথেষ্ট। - ফিঙ্গারপ্রিন্ট ইনজেকশন: tab.apply_fingerprint() User-Agent, Client Hints, navigator, WebGL, canvas, screen, fonts, timezone এবং locale ওভাররাইড করে, মানগুলো সামঞ্জস্যপূর্ণ রাখে। README-তে বলা হয়েছে, ইনজেক্ট করা ওভাররাইডগুলো toString এবং prototype introspection থেকে টিকে থাকে এবং Web Workers-এ ছড়িয়ে পড়ে। এতে আরও উল্লেখ আছে যে Pydoll ফিঙ্গারপ্রিন্ট তৈরি বা সরবরাহ করে না; উদাহরণ প্রোফাইলগুলো শুধু রেফারেন্স। - Structured extraction: একটি Pydantic মডেল সংজ্ঞায়িত করে tab.extract() বা tab.extract_all() কল করলে typed, validated ডেটা পাওয়া যায়, সাথে CSS/XPath স্বয়ংক্রিয় শনাক্তকরণ, attribute targeting, custom transform এবং nested মডেল। - Shadow DOM এবং iframe: closed shadow root সহ shadow root সাপোর্ট, এবং cross-origin iframe, একই find/query/click API ব্যবহার করে। - নেটওয়ার্ক নিয়ন্ত্রণ: 광고 ও tracker ব্লক করতে request interception, API discovery-র জন্য traffic monitoring, HAR 1.2 রেকর্ডিং ও রিপ্লে, এবং ব্রাউজার সেশন উত্তরাধিকারী authenticated HTTP request। - Page bundle: একটি পেজ ও তার asset একটি zip হিসেবে সংরক্ষণ, ঐচ্ছিকভাবে asset একটি একক HTML ফাইলে inline করা। - Concurrency এবং remote সংযোগ: একাধিক tab ও isolated browser context, সাথে Docker বা remote server-এ থাকা ব্রাউজারে সংযোগ। - Custom recovery logic ও exponential backoff সহ retry decorator। ইনস্টলেশন pip install pydoll-python-এর মাধ্যমে, কোনো WebDriver binary বা external dependency প্রয়োজন নেই। README-তে উল্লেখ আছে যে প্রকল্পটি বর্তমানে একজন ব্যক্তি রক্ষণাবেক্ষণ করছেন, উন্নয়ন আরও শান্ত গতিতে চলছে, এবং প্রকল্পটি 10k star-এ পৌঁছালে Firefox সাপোর্ট একটি লক্ষ্য হিসেবে পরিকল্পিত। এতে আরও বলা হয়েছে যে Turnstile bypass কোনো magic bypass নয় এবং এটি পরিবেশ ও IP reputation-এর উপর নির্ভর করে।