为了账号安全,请及时绑定邮箱和手机立即绑定

访问被拒绝 - python selenium - 即使使用用户代理和其他标头后也是如此

访问被拒绝 - python selenium - 即使使用用户代理和其他标头后也是如此

四季花海 2023-07-05 10:05:55
使用 python,我尝试提取 NSE 交易所在https://www.nseindia.com/option-chain上公开发布的期权链数据表尝试使用请求会话以及硒,但不知何故该网站不允许使用机器人提取数据。以下是所做的尝试:尝试设置会话并尝试首先从https://www.nseindia.com/api/csrf-token获取 csrf_token ,然后调用 url,而不是普通请求。然而,该网站似乎有使用 JavaScript 的某些额外授权。通过研究chrome开发者控制台的xhr和js选项卡,该网站似乎使用了某些js脚本进行首次授权,因此这次使用了selenium。加载驱动程序时还在标头中传递了 useragent 和 Accept-Language 参数(根据此 stackoverflow 答案)。但不知何故,访问仍然被网站阻止。我有什么明显遗漏的吗?或者网站将尽一切努力阻止使用 selenium/requests + python 从网站自动提取数据?无论哪种情况,我如何提取这些数据?以下是我当前的代码:(从https://www.nseindia.com/option-chain获取表内容)from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsopts = Options()opts.add_argument("user-agent=Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36")opts.add_argument("Accept-Language=en-US,en;q=0.5")opts.add_argument("Accept=text/html")driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe",chrome_options=opts)#driver.get('https://www.nseindia.com/api/csrf-token')driver.get('https://www.nseindia.com/')#driver.get('https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY')driver.get('https://www.nseindia.com/option-chain')
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信