【发布时间】:2019-08-10 03:37:12
【问题描述】:
对不起,如果这令人困惑。
我使用 NodeJS 请求模块编写了一个脚本,该模块在网站上运行并执行一个功能,然后返回数据。当我通过将其设置为 false 不使用代理时,此脚本工作得非常好。这不是 Selenium/puppeteer 不允许完成的任务
proxy: false
但是,当我设置(工作)代理时。它无法执行相同的任务,并被网站防火墙/反机器人软件检测到。
proxy: http://xx.xxx.xx.xx:3128
注意事项:
- 我尝试了 许多 (20 多个) 不同的代理提供商(住宅和数据中心),他们都有这个问题
- 如果该代理在我的系统上全局设置,则不会出现此问题
- 如果在 chrome 扩展中设置了该代理,则不会出现此问题
- SSL 密码套件与 Chrome 不匹配,但在不使用代理时它们仍然不匹配,所以我认为这不是问题
- 保持标题顺序的一致性非常重要
问题基本上是。使用代理时,请求模块是否会更改任何内容,例如标头顺序?
唯一的区别是更改导致此失败的代理。一个请求有,一个请求没有。
url : url,
simple : false,
forever: true,
resolveWithFullResponse: true,
gzip: true,
headers: {
'Host' : 'www.sitename.com',
'Connection' : 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',
'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-encoding' : 'gzip, deflate, br',
'Accept-Language' : 'en-GB,en-US;q=0.9,en;q=0.8',
},
method : 'GET',
jar: globalJar,
simple: false,
followRedirect: false,
followAllRedirects: false,
【问题讨论】:
-
你需要展示你是如何使用
proxy- -
proxy: http://xx.xxx.xx.xx:3128@MarcosCasagrande 记录到请求库中的方式 -
我认为 HTTP 标头的顺序并不重要。如果你想检查你的标题,你可以使用httpbin.org/anything。
-
嗨@t.m.adam - 我知道在非常正常的情况下,标题顺序并不重要。在这种情况下,标题顺序很重要并且会阻止执行。我会做一个图表来进一步帮助
-
stackoverflow.com/questions/23585371/… 这个问题对您有帮助吗?
标签: javascript node.js proxy request http-proxy