簡體   English   中英

Python Selenium Chrome 驅動程序 - nseindia - 獲得 403

[英]Python Selenium Chrome Driver - nseindia - getting 403

在此處輸入圖片說明

''' 試圖從 NSE https://www.nseindia.com/->Market Data-> Derivatives Market Works 獲取股票衍生品數據,直到點擊操作,瀏覽器導航到衍生品市場,但隨后出現拒絕訪問錯誤,如下所示

 <h1>
   Access Denied
  </h1>
  You don't have permission to access "http://www.nseindia.com/market-data/equity-derivatives-watch" on this server.
  <p>
   Reference #18.386dcc17.1603823463.54b06d7
  </p>
'''

from selenium import webdriver
from selenium.webdriver import ActionChains
from bs4 import BeautifulSoup
import time

# Tried all possible options below

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=options)

driver.get("https://www.nseindia.com/")

marketdata = driver.find_element_by_xpath("//*[@id='main_navbar']/ul/li[3]/a")
derivativesmarket = driver.find_element_by_xpath("//*[@id='main_navbar']/ul/li[3]/div/div[1]/div/div[1]/ul/li[3]/a")

actions = ActionChains(driver)
actions.move_to_element(marketdata).move_to_element(derivativesmarket).click().perform()

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
# soup = BeautifulSoup(html,'lxml')
time.sleep(7)

print(soup.prettify())[enter image description here][1]

添加

options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

並使用

 from selenium.webdriver.support.ui import WebDriverWait
 from selenium.webdriver.support import expected_conditions as EC

然后像這樣訪問元素:

WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "h1.h1")))

參考:- 拒絕訪問您無權使用 ChromeDriver 和 Chrome 通過 Selenium Python 訪問此服務器上的“站點”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM