gpt4 book ai didi

javascript - Puppeteer 通过 IP 连接

转载 作者:行者123 更新时间:2023-12-03 07:13:12 33 4
gpt4 key购买 nike

我在通过 IP 连接到某个网站时遇到问题。我使用 Docker 安装 Google Chrome,然后使用 puppeteer.connect() 连接到当前实例:

(async () => {
try {
const IP = '104.20.0.109'

const browser = await puppeteer.connect({
browserURL: 'http://localhost:9222' //connect to Google Chrome
})

const page = await browser.newPage()

await page.setExtraHTTPHeaders({ host: 'www.skillshare.com'}) //configure host to connect via IP
await page.setUserAgent('MyUserAgent')

await page.goto(`http://${IP}`, { waitUntil: 'networkidle0' })

console.log('Yeah, it works!')
} catch (e) {
console.log('Are you kidding me?')
}
})()

我还尝试按如下方式设置 host header :

await page.setRequestInterception(true)

page.on('request', request => {
const headers = request.headers()

headers['host'] = 'www.skillshare.com'

request.continue({ headers })
})

标题:

{
host: 'www.skillshare.com',
'user-agent': '<looooong string>'
}

入口点.sh:

#!/bin/bash

nohup google-chrome \
--no-sandbox \
--disable-background-networking \
--disable-default-apps \
--disable-dev-shm-usage \
--disable-extensions \
--disable-gpu \
--disable-setuid-sandbox \
--disable-sync \
--disable-translate \
--headless \
--hide-scrollbars \
--lang=en_US \
--metrics-recording-only \
--mute-audio \
--no-first-run \
--safebrowsing-disable-auto-update \
--ignore-certificate-errors \
--ignore-ssl-errors \
--ignore-certificate-errors-spki-list \
--user-data-dir=/tmp \
--remote-debugging-port=9222 \
--remote-debugging-address=0.0.0.0

注意:

我使用 puppeteer.launch() 进行了测试并且它有效,但我需要使用 puppeteer.connect() 才能正常工作。我也可以通过域轻松连接,但 IP 不起作用。

错误:

Error: net::ERR_INVALID_ARGUMENT at http://104.20.0.109
at navigate (/app/node_modules/puppeteer/lib/FrameManager.js:120:37)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async FrameManager.navigateFrame (/app/node_modules/puppeteer/lib/FrameManager.js:94:17)
at async Frame.goto (/app/node_modules/puppeteer/lib/FrameManager.js:406:12)
at async Page.goto (/app/node_modules/puppeteer/lib/Page.js:672:12)
-- ASYNC --
at Frame.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:111:15)
at Page.goto (/app/node_modules/puppeteer/lib/Page.js:672:49)
at Page.<anonymous> (/app/node_modules/puppeteer/lib/helper.js:112:23)
at c.<anonymous> (/app/build/bundle.min.js:1:3204)
at /app/build/bundle.min.js:1:1256
at Object.next (/app/build/bundle.min.js:1:1361)
at n (/app/build/bundle.min.js:1:107)
at processTicksAndRejections (internal/process/task_queues.js:97:5)

相关问题:

更新:

据我了解,没有办法设置Host,所以这个问题可能没有答案。

最佳答案

确保使用 --remote-debugging-port=9222 启动您的 chrome 实例,让 puppeteer.connect() 连接到浏览器。

编辑:我看到你已经在使用这个标志了。

如果它不能解决您的问题:考虑通过 websocket endpoint 连接而不是 browserURL

关于javascript - Puppeteer 通过 IP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62562315/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com