node.js使用代理踩的坑最终的解决方案使用https和socks-proxy-agent解决
在Node.js中使用代理爬虫时,可能会遇到多种问题,如代理服务器不信任、代理认证问题、代理协议不匹配等。以下是一个使用https
模块和socks-proxy-agent
来通过Socks代理发送HTTPS请求的示例代码:
const https = require('https');
const SocksProxyAgent = require('socks-proxy-agent');
// 代理服务器地址,格式为 'socks5://user:password@host:port'
const proxy = 'socks5://username:password@proxyserver:port';
// 创建代理代理
const agent = new SocksProxyAgent(proxy);
// 目标URL
const options = {
hostname: 'example.com',
port: 443,
path: '/',
method: 'GET',
agent: agent // 使用代理
};
const req = https.request(options, (res) => {
console.log(`状态码: ${res.statusCode}`);
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.on('error', (e) => {
console.error(`请求遇到问题: ${e.message}`);
});
req.end();
在这个例子中,我们使用了https.request
来发送一个HTTPS请求,并通过socks-proxy-agent
指定了代理服务器。注意,你需要提供正确的代理服务器地址和认证信息。如果代理服务器不需要认证,可以省略用户名和密码。
评论已关闭