我正在尝试使用selenium & python从NSE-印度网站下载每日报告。
下载每日报告的方法
显式等待代码
element=WebDriverWait(driver,50).until(EC.visibility_of_element_located(By.xpath,"//table[@id='etfTable']"))
downloadcsv= driver.find_element_by_xpath("//div[@id='esw-etf']/div[2]/div/div[3]/div/ul/li/a")全码
从selenium.webdriver.common.by导入from驱动程序从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.support导入expected_conditions作为EC选项=webdriver.ChromeOptions();options.binary_location=r'/Applications/Google Chrome 2.try/Content/MacOS/Google‘chrome_driver_binary =r'/usr/local/Caskroom/chromedriver/94.0.4606.61/chromedriver’options.add_experimental_option("prefs",prefs)驱动程序=webdriver.Chrome(chrome_driver_binary,options=options)尝试:#driver.implicity_wait(10) driver.get('https://www.nseindia.com/market-data/exchange-traded-funds-etf')元素=WebDriverWait(driver,50).until(EC.visibility_of_element_located(By.xpath,“//table@id=‘etfTable’”( downloadcsv= downloadcsv= print(downloadcsv) downloadcsv.click() time.sleep(5) driver.close()除外:print(“无效URL")
我面临的问题。
发布于 2021-10-13 05:29:56
程序中有一些语法错误。就像几行分号一样,和使用WebDriverWait查找element时,括号缺少了。
试着像下面这样确认一下。
可以使用Javascript单击该元素。
driver.get("https://www.nseindia.com/market-data/exchange-traded-funds-etf")
element =WebDriverWait(driver,50).until(EC.visibility_of_element_located((By.XPATH,"//table[@id='etfTable']/tbody/tr[2]")))
downloadcsv= driver.find_element_by_xpath("//img[@title='csv']/parent::a")
print(downloadcsv)
driver.execute_script("arguments[0].click();",downloadcsv)发布于 2021-10-14 07:18:51
这不是代码的问题,而是网站的问题。我检查了它的大部分时间,它不允许我点击CSV文件。而不是下载CSV文件,您可以刮表。
# for direct to the page delete cookies is very important otherwise it will deny the access
browser.delete_all_cookies()
browser.get('https://www.nseindia.com/market-data/exchange-traded-funds-etf')
sleep(5)
soup = BeautifulSoup(browser.page_source, 'html.parser')
# scrape the table from the souphttps://stackoverflow.com/questions/69549543
复制相似问题