ວິທີຕັ້ງຄ່າ authenticated proxy ໃນ Puppeteer (Node.js)
Updated:
Puppeteer ຄວບຄຸມ Chrome ແລະ Chromium ຜ່ານ DevTools Protocol (CDP), ໂດຍມີ API ມາດຕະຖານ await page.authenticate({ username, password }) ສຳລັບການຢືນຢັນຕົວຕົນ HTTP 407 proxy. ການຈັບຄູ່ --proxy-server=http://ip:port ກັບ page.authenticate() ຊ່ວຍໃຫ້ຕົວດຶງຂໍ້ມູນ Node.js ຂອງທ່ານແລ່ນຜ່ານ VinaProxy static proxy ໄດ້ໂດຍບໍ່ຕ້ອງໃຊ້ browser extension ເພີ່ມເຕີມ.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
ການຕັ້ງຄ່າ proxy ແບບ 2 ຂັ້ນຕອນໃນ Puppeteer
ຫ້າມໃສ່ user:pass@ ໄວ້ໃນ argument ເປີດໃຊ້ງານ --proxy-server. ແຕ່ໃຫ້ສົ່ງ host ແລະ port ຕອນເປີດໃຊ້ງານ ແລ້ວຈຶ່ງຢືນຢັນຕົວຕົນເທິງ Page instance ແທນ:
| ຂັ້ນຕອນ | ໂຄ້ດ Puppeteer | ເຫດຜົນທີ່ສຳຄັນ |
|---|---|---|
| 1. ເປີດໃຊ້ Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | ກຳນົດ network socket ຂອງ Chromium ໄປຍັງ VinaProxy proxy ຂອງທ່ານ |
| 2. ຢືນຢັນຕົວຕົນເທິງ Page | await page.authenticate({ username, password }) | ສົ່ງ CDP credentials ສຳລັບການກວດສອບ HTTP 407 |
| 3. ເຂົ້າສູ່ເວັບໄຊ | await page.goto(url, { waitUntil: 'domcontentloaded' }) | ໂຫຼດ URL ປາຍທາງຜ່ານອຸໂມງເຊື່ອມຕໍ່ທີ່ຢືນຢັນຕົວຕົນແລ້ວ |
ການໝູນວຽນຫຼາຍ proxy ຂ້າມແທັບດ້ວຍ proxy-chain
- ຄວນຈື່ໄວ້ວ່າ
page.authenticate()ເຮັດວຽກສະເພາະແຕ່ລະແທັບPage—ຕ້ອງເອີ້ນໃຊ້ໃນທຸກແທັບໃໝ່ທີ່ສ້າງຂຶ້ນຈາກbrowser.newPage() - ຫາກຕ້ອງການໃຊ້ proxy ທີ່ຕ່າງກັນໃນ incognito context ພາຍໃນ Chromium process ດຽວ, ໃຫ້ຄອບແຕ່ລະ URL
http://user:pass@ip:portດ້ວຍ npm packageproxy-chain(anonymizeProxy()) ແລ້ວສົ່ງproxyServerໄປຍັງbrowser.createBrowserContext({ proxyServer }) - ຮອງຮັບການໃຊ້ງານຮ່ວມກັບ
puppeteer-extraແລະpuppeteer-extra-plugin-stealth
ເທື່ອລະຂັ້ນຕອນ
- 1
ສົ່ງ --proxy-server=http://ip:port ໄປຍັງ puppeteer.launch()
ເປີດໃຊ້ browser ດ້ວຍ
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
ປິດ browser process
ເອີ້ນໃຊ້
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 }) ກ່ອນທີ່ຈະເຂົ້າສູ່ເວັບໄຊເທິງທຸກແທັບທີ່ເປີດຂຶ້ນໃໝ່.
Proxy ຂອງ VinaProxy ບໍ່ຈຳກັດ bandwidth ສຳລັບການດຶງຂໍ້ມູນດ້ວຍ headless Chrome ແມ່ນບໍ່?
ແມ່ນແລ້ວ. ແພັກເກດ Dedicated IPv4 ແລະ Static ISP ທັງໝົດແມ່ນລວມ bandwidth ລາຍເດືອນແບບບໍ່ຈຳກັດ.
ເພີ່ມປະສິດທິພາບໃຫ້ລະບົບ Node.js Puppeteer ຂອງທ່ານດ້ວຍ static IP
Dedicated IPv4 ແລະ Static ISP proxy ທີ່ບໍ່ຈຳກັດ bandwidth ພ້ອມໃຊ້ງານທັນທີໃນ 7 ປະເທດ.
ຊື້ Puppeteer Proxy