როგორ გავმართოთ ავთენტიფიცირებული პროქსი Puppeteer-ში (Node.js)
Updated:
Puppeteer მართავს Chrome-სა და Chromium-ს DevTools Protocol-ის (CDP) მეშვეობით და გთავაზობთ ჩაშენებულ await page.authenticate({ username, password }) API-ს HTTP 407 პროქსის ავთენტიფიკაციისთვის. --proxy-server=http://ip:port-ისა და page.authenticate()-ის კომბინაცია საშუალებას აძლევს თქვენს Node.js სკრეიპერებს იმუშაონ VinaProxy-ის სტატიკური პროქსებით ბრაუზერის დამატებითი გაფართოებების გარეშე.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
- 1 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
პროქსის ორეტაპიანი კონფიგურაცია Puppeteer-ში
არასოდეს ჩასვათ user:pass@ გაშვების --proxy-server არგუმენტში. ამის ნაცვლად, გაშვებისას მიუთითეთ მხოლოდ ჰოსტი და პორტი, ხოლო ავთენტიფიკაცია გაიარეთ Page ობიექტზე:
| ნაბიჯი | Puppeteer-ის კოდი | რატომ არის მნიშვნელოვანი |
|---|---|---|
| 1. Chromium-ის გაშვება | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | მიმართავს Chromium-ის ქსელურ სოკეტს თქვენი VinaProxy პროქსისკენ |
| 2. გვერდის ავთენტიფიკაცია | await page.authenticate({ username, password }) | გადასცემს CDP მონაცემებს HTTP 407 მოთხოვნის საპასუხოდ |
| 3. ნავიგაცია | await page.goto(url, { waitUntil: 'domcontentloaded' }) | ტვირთავს სამიზნე URL-ს ავთენტიფიცირებული გვირაბის გავლით |
რამდენიმე პროქსის როტაცია ჩანართებს შორის proxy-chain-ის გამოყენებით
- გახსოვდეთ, რომ
page.authenticate()მოქმედებს კონკრეტულიPageჩანართის ფარგლებში — გამოიძახეთ ისbrowser.newPage()-ით შექმნილ ყოველ ახალ ჩანართზე - ერთი Chromium პროცესის ინკოგნიტო კონტექსტებში სხვადასხვა პროქსის გამოსაყენებლად, შეფუთეთ თითოეული
http://user:pass@ip:portURLproxy-chainnpm პაკეტით (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 }) თითოეულ ახლად გახსნილ ჩანართზე.
არის თუ არა VinaProxy პროქსი ულიმიტო headless Chrome-ით სკრეიპინგისთვის?
დიახ. Dedicated IPv4 და Static ISP ყველა ტარიფი მოიცავს ულიმიტო ყოველთვიურ ტრაფიკს.
გააძლიერეთ თქვენი Node.js Puppeteer სტატიკური IP-ებით
მყისიერი ულიმიტო Dedicated IPv4 და Static ISP პროქსი 7 ქვეყანაში.
შეიძინეთ Puppeteer პროქსი