Selenium启用--headless=new时Twitter页面提示需启用JS的问题
推特推文页面解析器的无头模式访问问题
- 背景:Twitter API收费后,需开发推文页面解析器,当前使用Socks5代理
- 直接代理请求问题:返回302状态码并陷入无限重定向;添加Cookie后收到「请启用JS」的页面提示
- Selenium访问情况:不启用
--headless=new参数时可正常访问,启用该参数后再次出现「请启用JS」提示 - 已尝试的解决方案:
- 参考StackOverflow上关于无头Chrome启用JS、修改
navigator.webdriver防检测、无头模式失效的相关方案 - 更换不同User-Agent、不同Selenium库版本
- 指定对应版本的ChromeDriver(v114.0.5735.90 对应Chrome v114.0.5735.199)
- 更换Edge浏览器
- 确认JS已处于启用状态
- 参考StackOverflow上关于无头Chrome启用JS、修改
- 环境信息:使用最新版Selenium库,开发语言为C#,调试用控制台应用
核心代码如下:
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; Proxy proxy = new Proxy(); proxy.Kind = ProxyKind.Manual; proxy.SocksVersion = 5; proxy.SocksProxy = "host:port"; var options = new ChromeOptions(); options.AddArguments("--headless=new"); options.Proxy = proxy; string pageSource = ""; using (var driver = new ChromeDriver(options)) { driver.Navigate().GoToUrl("https://twitter.com/ElonMuskAOC/status/1677171220184469505"); pageSource = driver.PageSource; } Console.ReadLine();
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

