|
4 | 4 | <meta charset="UTF-8" /> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | 6 | <meta name="theme-color" content="#0b1220" /> |
7 | | - <title>Pydoll — Automate the Web, naturally</title> |
| 7 | + <title>Pydoll - Automate the Web, naturally</title> |
8 | 8 | <meta name="description" content="Pydoll is a Python browser automation (CDP) library for web scraping, captcha bypass (Cloudflare, reCAPTCHA), human-like interactions, and browser-context requests." /> |
9 | 9 | <meta name="keywords" content="pydoll, browser automation, web automation, web scraping, scraping, data scraping, data extraction, crawler, crawling, headless browser, headless chrome, chrome devtools protocol, devtools protocol, cdp, python cdp, chrome cdp, playwright, puppeteer, selenium, selenium alternative, pyppeteer, undetected chromedriver, stealth, antibot, anti bot, bot detection, fingerprinting, captcha bypass, bypass cloudflare, cloudflare turnstile, recaptcha, hcaptcha, captcha solver, automation python, async python, asyncio, network interception, request interception, browser context requests, http requests browser context, humanized interactions, human-like interactions, automation library, scraping framework, scrapy, beautifulsoup, bs4, requests, aiohttp, automação de navegador, automação web, raspagem de dados, coleta de dados, robô, bot, detecção de bot, interações humanizadas, assíncrono, concorrência, múltiplas abas, preferências do navegador, downloads silenciosos" /> |
10 | 10 | <meta name="robots" content="index,follow" /> |
11 | | - <link rel="canonical" href="https://github.com/autoscrape-labs/pydoll" /> |
| 11 | + <link rel="canonical" href="https://pydoll.tech/" /> |
12 | 12 |
|
13 | 13 | <!-- Open Graph --> |
14 | | - <meta property="og:title" content="Pydoll — Automate the Web, naturally" /> |
| 14 | + <meta property="og:title" content="Pydoll - Automate the Web, naturally" /> |
15 | 15 | <meta property="og:description" content="Browser automation for web scraping with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA)." /> |
16 | 16 | <meta property="og:type" content="website" /> |
17 | 17 | <meta property="og:image" content="https://github.com/user-attachments/assets/219f2dbc-37ed-4aea-a289-ba39cdbb335d" /> |
18 | | - <meta property="og:url" content="https://github.com/autoscrape-labs/pydoll" /> |
| 18 | + <meta property="og:url" content="https://pydoll.tech/" /> |
19 | 19 | <meta property="og:site_name" content="Pydoll" /> |
20 | | - <meta property="og:locale" content="pt_BR" /> |
21 | | - <meta property="og:locale:alternate" content="en_US" /> |
| 20 | + <meta property="og:locale" content="en_US" /> |
| 21 | + <meta property="og:locale:alternate" content="pt_BR" /> |
22 | 22 |
|
23 | 23 | <!-- Twitter Card --> |
24 | 24 | <meta name="twitter:card" content="summary_large_image" /> |
25 | | - <meta name="twitter:title" content="Pydoll — Automate the Web, naturally" /> |
| 25 | + <meta name="twitter:title" content="Pydoll - Automate the Web, naturally" /> |
26 | 26 | <meta name="twitter:description" content="Browser automation for web scraping, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA)." /> |
27 | 27 | <meta name="twitter:image" content="https://github.com/user-attachments/assets/219f2dbc-37ed-4aea-a289-ba39cdbb335d" /> |
28 | 28 |
|
29 | 29 | <!-- Performance hints --> |
30 | 30 | <link rel="preconnect" href="https://cdn.tailwindcss.com" /> |
31 | 31 | <link rel="preconnect" href="https://cdn.jsdelivr.net" /> |
32 | 32 | <link rel="preconnect" href="https://github.com" crossorigin /> |
33 | | - <link rel="preconnect" href="https://autoscrape-labs.github.io" /> |
| 33 | + <link rel="preconnect" href="https://pydoll.tech/" /> |
34 | 34 |
|
35 | 35 | <!-- Favicon --> |
36 | | - <link rel="icon" type="image/png" href="../images/favicon.png" /> |
| 36 | + <link rel="icon" type="image/png" href="./docs/images/favicon.png" /> |
37 | 37 |
|
38 | 38 | <!-- Tailwind CSS via CDN --> |
39 | 39 | <script src="https://cdn.tailwindcss.com"></script> |
40 | 40 | <!-- Schema.org: SoftwareApplication / SoftwareSourceCode --> |
41 | 41 | <script type="application/ld+json"> |
42 | | - { |
43 | | - "@context": "https://schema.org", |
44 | | - "@type": "SoftwareApplication", |
45 | | - "name": "Pydoll", |
46 | | - "applicationCategory": "DeveloperApplication", |
47 | | - "operatingSystem": "Windows, macOS, Linux", |
48 | | - "programmingLanguage": "Python", |
49 | | - "url": "https://github.com/autoscrape-labs/pydoll", |
50 | | - "image": "https://github.com/user-attachments/assets/219f2dbc-37ed-4aea-a289-ba39cdbb335d", |
51 | | - "description": "Browser automation (CDP) for web scraping with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA).", |
52 | | - "keywords": [ |
53 | | - "pydoll", |
54 | | - "browser automation", |
55 | | - "web automation", |
56 | | - "web scraping", |
57 | | - "scraping", |
58 | | - "data scraping", |
59 | | - "data extraction", |
60 | | - "crawler", |
61 | | - "crawling", |
62 | | - "headless browser", |
63 | | - "headless chrome", |
64 | | - "chrome devtools protocol", |
65 | | - "devtools protocol", |
66 | | - "cdp", |
67 | | - "python cdp", |
68 | | - "chrome cdp", |
69 | | - "playwright", |
70 | | - "puppeteer", |
71 | | - "selenium", |
72 | | - "selenium alternative", |
73 | | - "pyppeteer", |
74 | | - "undetected chromedriver", |
75 | | - "stealth", |
76 | | - "antibot", |
77 | | - "anti bot", |
78 | | - "bot detection", |
79 | | - "fingerprinting", |
80 | | - "captcha bypass", |
81 | | - "bypass cloudflare", |
82 | | - "cloudflare turnstile", |
83 | | - "recaptcha", |
84 | | - "hcaptcha", |
85 | | - "captcha solver", |
86 | | - "automation python", |
87 | | - "async python", |
88 | | - "asyncio", |
89 | | - "network interception", |
90 | | - "request interception", |
91 | | - "browser context requests", |
92 | | - "http requests browser context", |
93 | | - "humanized interactions", |
94 | | - "human-like interactions", |
95 | | - "automation library", |
96 | | - "scraping framework", |
97 | | - "scrapy", |
98 | | - "beautifulsoup", |
99 | | - "bs4", |
100 | | - "requests", |
101 | | - "aiohttp", |
102 | | - "automação de navegador", |
103 | | - "automação web", |
104 | | - "raspagem de dados", |
105 | | - "coleta de dados", |
106 | | - "robô", |
107 | | - "bot", |
108 | | - "detecção de bot", |
109 | | - "interações humanizadas", |
110 | | - "assíncrono", |
111 | | - "concorrência", |
112 | | - "múltiplas abas", |
113 | | - "preferências do navegador", |
114 | | - "downloads silenciosos" |
115 | | - ], |
116 | | - "offers": { |
117 | | - "@type": "Offer", |
118 | | - "price": "0", |
119 | | - "priceCurrency": "USD" |
120 | | - } |
121 | | - } |
122 | | - </script> |
123 | | - <script type="application/ld+json"> |
124 | | - { |
125 | | - "@context": "https://schema.org", |
126 | | - "@type": "FAQPage", |
127 | | - "mainEntity": [ |
128 | | - { |
129 | | - "@type": "Question", |
130 | | - "name": "What is Pydoll and why doesn't it use WebDriver?", |
131 | | - "acceptedAnswer": { |
132 | | - "@type": "Answer", |
133 | | - "text": "Pydoll is a Python library that controls the browser via the Chrome DevTools Protocol (CDP), eliminating WebDrivers. This reduces layers, improves reliability and gives direct access to page events, network interception and JavaScript execution in the real tab context." |
134 | | - } |
135 | | - }, |
136 | | - { |
137 | | - "@type": "Question", |
138 | | - "name": "Can Pydoll handle CAPTCHAs like Cloudflare Turnstile or reCAPTCHA v3?", |
139 | | - "acceptedAnswer": { |
140 | | - "@type": "Answer", |
141 | | - "text": "It provides human-like interactions (movement, click, typing) and a helper to attempt Turnstile bypass. Effectiveness depends on IP reputation and interaction pattern. Combine with quality proxies and good navigation practices." |
142 | | - } |
143 | | - }, |
144 | | - { |
145 | | - "@type": "Question", |
146 | | - "name": "What are browser-context requests and when to use them?", |
147 | | - "acceptedAnswer": { |
148 | | - "@type": "Answer", |
149 | | - "text": "With tab.request you perform HTTP in the same tab context: cookies, session and CORS are automatically inherited. Ideal for hybrid automation — log in via UI and then call authenticated application APIs." |
150 | | - } |
151 | | - }, |
152 | | - { |
153 | | - "@type": "Question", |
154 | | - "name": "What are the practical differentiators: concurrency, events and preferences?", |
155 | | - "acceptedAnswer": { |
156 | | - "@type": "Answer", |
157 | | - "text": "Concurrency with asyncio.gather, reactive events (Page/Network/Runtime) for responsive automations and browser preferences control for silent downloads, languages and more." |
| 42 | + { |
| 43 | + "@context": "https://schema.org", |
| 44 | + "@graph": [ |
| 45 | + { |
| 46 | + "@type": "WebSite", |
| 47 | + "@id": "https://pydoll.tech/#website", |
| 48 | + "name": "Pydoll", |
| 49 | + "url": "https://pydoll.tech/", |
| 50 | + "potentialAction": { |
| 51 | + "@type": "SearchAction", |
| 52 | + "target": "https://pydoll.tech/docs/search/?q={search_term_string}", |
| 53 | + "query-input": "required name=search_term_string" |
| 54 | + } |
| 55 | + }, |
| 56 | + { |
| 57 | + "@type": "WebPage", |
| 58 | + "@id": "https://pydoll.tech/#webpage", |
| 59 | + "url": "https://pydoll.tech/", |
| 60 | + "name": "Pydoll - Async Web Automation Library", |
| 61 | + "isPartOf": { "@id": "https://pydoll.tech/#website" }, |
| 62 | + "description": "Browser automation (CDP) for web scraping with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA)." |
| 63 | + }, |
| 64 | + { |
| 65 | + "@type": "SoftwareApplication", |
| 66 | + "@id": "https://pydoll.tech/#software", |
| 67 | + "name": "Pydoll", |
| 68 | + "applicationCategory": "DeveloperApplication", |
| 69 | + "operatingSystem": "Windows, macOS, Linux", |
| 70 | + "programmingLanguage": "Python", |
| 71 | + "url": "https://github.com/autoscrape-labs/pydoll", |
| 72 | + "image": "https://github.com/user-attachments/assets/219f2dbc-37ed-4aea-a289-ba39cdbb335d", |
| 73 | + "description": "Browser automation (CDP) for web scraping with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA).", |
| 74 | + "keywords": [ |
| 75 | + "pydoll", |
| 76 | + "browser automation", |
| 77 | + "web automation", |
| 78 | + "web scraping", |
| 79 | + "data extraction", |
| 80 | + "crawler", |
| 81 | + "headless browser", |
| 82 | + "chrome devtools protocol", |
| 83 | + "python cdp", |
| 84 | + "playwright", |
| 85 | + "puppeteer", |
| 86 | + "selenium alternative", |
| 87 | + "antibot", |
| 88 | + "captcha bypass", |
| 89 | + "cloudflare turnstile", |
| 90 | + "recaptcha", |
| 91 | + "async python", |
| 92 | + "automation library", |
| 93 | + "scraping framework" |
| 94 | + ], |
| 95 | + "offers": { |
| 96 | + "@type": "Offer", |
| 97 | + "price": "0", |
| 98 | + "priceCurrency": "USD" |
| 99 | + } |
| 100 | + }, |
| 101 | + { |
| 102 | + "@type": "SoftwareSourceCode", |
| 103 | + "name": "Pydoll", |
| 104 | + "codeRepository": "https://github.com/autoscrape-labs/pydoll", |
| 105 | + "programmingLanguage": "Python", |
| 106 | + "license": "https://github.com/autoscrape-labs/pydoll/blob/main/LICENSE", |
| 107 | + "description": "Python library for browser automation via Chrome DevTools Protocol (CDP), with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA).", |
| 108 | + "keywords": [ |
| 109 | + "pydoll", |
| 110 | + "browser automation", |
| 111 | + "web scraping", |
| 112 | + "chrome devtools protocol", |
| 113 | + "async python", |
| 114 | + "captcha bypass" |
| 115 | + ], |
| 116 | + "url": "https://pydoll.tech/" |
| 117 | + }, |
| 118 | + { |
| 119 | + "@type": "FAQPage", |
| 120 | + "mainEntity": [ |
| 121 | + { |
| 122 | + "@type": "Question", |
| 123 | + "name": "What is Pydoll and why doesn't it use WebDriver?", |
| 124 | + "acceptedAnswer": { |
| 125 | + "@type": "Answer", |
| 126 | + "text": "Pydoll is a Python library that controls the browser via the Chrome DevTools Protocol (CDP), eliminating WebDrivers. This reduces layers, improves reliability and gives direct access to page events, network interception and JavaScript execution in the real tab context." |
| 127 | + } |
| 128 | + }, |
| 129 | + { |
| 130 | + "@type": "Question", |
| 131 | + "name": "Can Pydoll handle CAPTCHAs like Cloudflare Turnstile or reCAPTCHA v3?", |
| 132 | + "acceptedAnswer": { |
| 133 | + "@type": "Answer", |
| 134 | + "text": "It provides human-like interactions (movement, click, typing) and a helper to attempt Turnstile bypass. Effectiveness depends on IP reputation and interaction pattern. Combine with quality proxies and good navigation practices." |
| 135 | + } |
| 136 | + }, |
| 137 | + { |
| 138 | + "@type": "Question", |
| 139 | + "name": "What are browser-context requests and when to use them?", |
| 140 | + "acceptedAnswer": { |
| 141 | + "@type": "Answer", |
| 142 | + "text": "With tab.request you perform HTTP in the same tab context: cookies, session and CORS are automatically inherited. Ideal for hybrid automation — log in via UI and then call authenticated application APIs." |
| 143 | + } |
| 144 | + }, |
| 145 | + { |
| 146 | + "@type": "Question", |
| 147 | + "name": "What are the practical differentiators: concurrency, events and preferences?", |
| 148 | + "acceptedAnswer": { |
| 149 | + "@type": "Answer", |
| 150 | + "text": "Concurrency with asyncio.gather, reactive events (Page/Network/Runtime) for responsive automations and browser preferences control for silent downloads, languages and more." |
| 151 | + } |
| 152 | + } |
| 153 | + ] |
158 | 154 | } |
159 | | - } |
160 | | - ] |
161 | | - } |
162 | | - </script> |
163 | | - <script type="application/ld+json"> |
164 | | - { |
165 | | - "@context": "https://schema.org", |
166 | | - "@type": "SoftwareSourceCode", |
167 | | - "name": "Pydoll", |
168 | | - "codeRepository": "https://github.com/autoscrape-labs/pydoll", |
169 | | - "programmingLanguage": "Python", |
170 | | - "license": "https://github.com/autoscrape-labs/pydoll/blob/main/LICENSE", |
171 | | - "description": "Python library for browser automation via Chrome DevTools Protocol (CDP), with human-like interactions, browser-context requests and captcha bypass (Cloudflare, reCAPTCHA).", |
172 | | - "keywords": "pydoll, browser automation, web automation, web scraping, scraping, data scraping, data extraction, crawler, crawling, headless browser, headless chrome, chrome devtools protocol, devtools protocol, cdp, python cdp, chrome cdp, playwright, puppeteer, selenium, selenium alternative, pyppeteer, undetected chromedriver, stealth, antibot, anti bot, bot detection, fingerprinting, captcha bypass, bypass cloudflare, cloudflare turnstile, recaptcha, hcaptcha, captcha solver, automation python, async python, asyncio, network interception, request interception, browser context requests, http requests browser context, humanized interactions, human-like interactions, automation library, scraping framework, scrapy, beautifulsoup, bs4, requests, aiohttp, automação de navegador, automação web, raspagem de dados, coleta de dados, robô, bot, detecção de bot, interações humanizadas, assíncrono, concorrência, múltiplas abas, preferências do navegador, downloads silenciosos", |
173 | | - "url": "https://github.com/autoscrape-labs/pydoll" |
174 | | - } |
175 | | - </script> |
176 | | - <script type="application/ld+json"> |
177 | | - { |
178 | | - "@context": "https://schema.org", |
179 | | - "@type": "WebSite", |
180 | | - "name": "Pydoll", |
181 | | - "url": "https://autoscrape-labs.github.io/pydoll/", |
182 | | - "potentialAction": { |
183 | | - "@type": "SearchAction", |
184 | | - "target": "https://autoscrape-labs.github.io/pydoll/search/?q={search_term_string}", |
185 | | - "query-input": "required name=search_term_string" |
| 155 | + ] |
186 | 156 | } |
187 | | - } |
188 | | - </script> |
| 157 | + </script> |
| 158 | + |
189 | 159 | <script> |
190 | 160 | tailwind.config = { |
191 | 161 | theme: { |
@@ -281,7 +251,7 @@ <h1 class="text-4xl font-bold tracking-tight sm:text-6xl"> |
281 | 251 | </div> |
282 | 252 | <div class="mt-12 w-full lg:mt-0 lg:max-w-xl lg:flex-none reveal"> |
283 | 253 | <div class="tilt-card relative overflow-hidden rounded-xl border border-white/10 bg-slate-900/40 p-2 shadow-xl"> |
284 | | - <img src="../images/cloudflare-example.gif" alt="Bypass Cloudflare com Pydoll" class="w-full rounded-lg ring-1 ring-white/10" decoding="async" /> |
| 254 | + <img src="./docs/images/cloudflare-example.gif" alt="Bypass Cloudflare com Pydoll" class="w-full rounded-lg ring-1 ring-white/10" decoding="async" /> |
285 | 255 | </div> |
286 | 256 | <p class="mt-4 text-center text-xs text-slate-400">Cloudflare captcha bypass example</p> |
287 | 257 | </div> |
@@ -397,7 +367,7 @@ <h2 class="text-2xl font-bold tracking-tight">Install and get started in seconds |
397 | 367 | <span class="ml-3 text-[10px] font-medium tracking-wide text-slate-400">terminal</span> |
398 | 368 | </div> |
399 | 369 | <div class="relative h-64 sm:h-72 md:h-80 lg:h-80"> |
400 | | - <img src="../images/google-search-example.gif" alt="Pydoll automation example" class="absolute inset-0 h-full w-full object-contain" loading="lazy" decoding="async" /> |
| 370 | + <img src="./docs/images/google-search-example.gif" alt="Pydoll automation example" class="absolute inset-0 h-full w-full object-contain" loading="lazy" decoding="async" /> |
401 | 371 | </div> |
402 | 372 | </div> |
403 | 373 | </div> |
|
0 commit comments