使用 python,我嘗試提取 NSE 交易所在https://www.nseindia.com/option-chain上公開(kāi)發(fā)布的期權(quán)鏈數(shù)據(jù)表嘗試使用請(qǐng)求會(huì)話以及硒,但不知何故該網(wǎng)站不允許使用機(jī)器人提取數(shù)據(jù)。以下是所做的嘗試:嘗試設(shè)置會(huì)話并嘗試首先從https://www.nseindia.com/api/csrf-token獲取 csrf_token ,然后調(diào)用 url,而不是普通請(qǐng)求。然而,該網(wǎng)站似乎有使用 JavaScript 的某些額外授權(quán)。通過(guò)研究chrome開(kāi)發(fā)者控制臺(tái)的xhr和js選項(xiàng)卡,該網(wǎng)站似乎使用了某些js腳本進(jìn)行首次授權(quán),因此這次使用了selenium。加載驅(qū)動(dòng)程序時(shí)還在標(biāo)頭中傳遞了 useragent 和 Accept-Language 參數(shù)(根據(jù)此 stackoverflow 答案)。但不知何故,訪問(wèn)仍然被網(wǎng)站阻止。我有什么明顯遺漏的嗎?或者網(wǎng)站將盡一切努力阻止使用 selenium/requests + python 從網(wǎng)站自動(dòng)提取數(shù)據(jù)?無(wú)論哪種情況,我如何提取這些數(shù)據(jù)?以下是我當(dāng)前的代碼:(從https://www.nseindia.com/option-chain獲取表內(nèi)容)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')
添加回答
舉報(bào)
0/150
提交
取消