Πώς να ρυθμίσετε authenticated proxy στο Puppeteer (Node.js)
Updated:
Το Puppeteer ελέγχει το Chrome και το Chromium μέσω του DevTools Protocol (CDP), παρέχοντας ένα εγγενές API await page.authenticate({ username, password }) για έλεγχο ταυτότητας proxy HTTP 407. Ο συνδυασμός του --proxy-server=http://ip:port με το page.authenticate() επιτρέπει στα Node.js scrapers σας να δρομολογούνται μέσω των static proxies της VinaProxy χωρίς εξωτερικές επεκτάσεις περιηγητή.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40.000 ₫
- 5+ IP35.000 ₫
- 10+ IP25.000 ₫
- 20+ IP25.000 ₫
- 50+ IP25.000 ₫
- 100+ IP25.000 ₫
- 200+ IP25.000 ₫
- 500+ IP25.000 ₫
- 1000+ IP22.000 ₫
- 2000+ IP20.000 ₫
- 1 IP40.000 ₫
- 5+ IP35.000 ₫
- 10+ IP25.000 ₫
- 20+ IP25.000 ₫
- 50+ IP25.000 ₫
- 100+ IP25.000 ₫
- 200+ IP25.000 ₫
- 500+ IP25.000 ₫
- 1000+ IP22.000 ₫
- 2000+ IP20.000 ₫
Ρύθμιση proxy δύο βημάτων στο Puppeteer
Μην ενσωματώνετε ποτέ το user:pass@ μέσα στο όρισμα εκκίνησης --proxy-server. Αντίθετα, δηλώστε το host και το port κατά την εκκίνηση και πραγματοποιήστε έλεγχο ταυτότητας στο instance Page:
| Βήμα | Κώδικας Puppeteer | Γιατί έχει σημασία |
|---|---|---|
| 1. Εκκίνηση Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Κατευθύνει το network socket του Chromium στο VinaProxy proxy σας |
| 2. Έλεγχος ταυτότητας Page | await page.authenticate({ username, password }) | Παρέχει διαπιστευτήρια CDP για HTTP 407 challenges |
| 3. Πλοήγηση | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Φορτώνει το URL προορισμού μέσω του authenticated tunnel |
Εναλλαγή πολλαπλών proxies μεταξύ καρτελών με το proxy-chain
- Να θυμάστε ότι το
page.authenticate()έχει εμβέλεια ανά καρτέλαPage—καλέστε το σε κάθε νέα καρτέλα που επιστρέφει τοbrowser.newPage() - Για να χρησιμοποιήσετε διαφορετικά proxies σε incognito contexts μέσα σε μία μόνο διεργασία Chromium, περάστε κάθε URL
http://user:pass@ip:portαπό το πακέτο npmproxy-chain(anonymizeProxy()) και ορίστε τοproxyServerστοbrowser.createBrowserContext({ proxyServer }) - Συμβατό με το
puppeteer-extraκαι τοpuppeteer-extra-plugin-stealth
Βήμα προς βήμα
- 1
Περάστε το --proxy-server=http://ip:port στο puppeteer.launch()
Εκκινήστε τον περιηγητή με
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Καλέστε το await page.authenticate() στη νέα σελίδα
Ανοίξτε μια καρτέλα με
const page = await browser.newPage();και καλέστεawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Ελέγξτε τη διεύθυνση IP εξόδου
Εκτελέστε το
await page.goto('https://vinaproxy.com/api/my-ip');και ελέγξτε το JSON που επιστρέφεται. - 4
Τερματίστε τις διεργασίες του περιηγητή
Καλέστε το
await browser.close();μόλις ολοκληρωθεί η εργασία.
Συχνές ερωτήσεις
Γιατί το Puppeteer εμφανίζει το σφάλμα `ERR_NO_SUPPORTED_PROXIES`;
Αυτό το σφάλμα παρουσιάζεται αν συμπεριλάβετε το user:pass@ μέσα στο --proxy-server=http://user:pass@ip:port. Διατηρήστε το --proxy-server=http://ip:port καθαρό και δηλώστε τα διαπιστευτήρια μέσω του await page.authenticate({ username, password }).
Γιατί μια δεύτερη καρτέλα που άνοιξε με το `browser.newPage()` απέτυχε με HTTP 407;
Το page.authenticate() εφαρμόζεται ανά καρτέλα. Καλέστε await secondPage.authenticate({ username, password }) πριν από την πλοήγηση σε κάθε νέα καρτέλα που ανοίγει.
Είναι τα proxies της VinaProxy απεριόριστα για scraping με headless Chrome;
Ναι. Όλα τα προγράμματα Dedicated IPv4 και Static ISP περιλαμβάνουν απεριόριστο μηνιαίο bandwidth.
Ενισχύστε το στόλο Node.js Puppeteer σας με static IPs
Άμεσα απεριόριστα Dedicated IPv4 και Static ISP proxies σε 7 χώρες.
Αγορά Puppeteer Proxies