Чтение значения со страницы HTML - nseindia - PullRequest
0 голосов
/ 25 апреля 2020

Я хочу прочитать значения «Open», «High» и «Close» NIFTY 50 со страницы ниже. https://www1.nseindia.com/live_market/dynaContent/live_watch/live_index_watch.htm

Приведенный ниже код работал раньше. Похоже, что на веб-странице произошли некоторые изменения, я не могу прочитать значения, так как получаю ошибку ниже.

nifty_50_row = table.find_all('tr')[2]          # get first row of prices
AttributeError: 'NoneType' object has no attribute 'find_all'

Нужна ваша помощь, чтобы решить эту проблему.

Мой код как показано ниже:

url ='https://www1.nseindia.com/live_market/dynaContent/live_watch/live_index_watch.htm'

options = webdriver.ChromeOptions()
options.add_argument('headless') # disable Chrome browser GUI interface
driver = webdriver.Chrome(r'/usr/bin/chromedriver', options=options)
driver.get(url)
soup = bs4.BeautifulSoup(driver.page_source, 'html.parser')
table = soup.find('table', id='liveIndexWatch')

nifty_50_row = table.find_all('tr')[2]        

high_low = nifty_50_row.find_all('td')[3:7]   

h=high_low[1].text
c=high_low[3].text
l=high_low[2].text))
todays_open =high_low[0].text
todays_high = high_low[1].text
todays_low = high_low[2].text
prev_day_close = high_low[3].text

1 Ответ

0 голосов
/ 25 апреля 2020
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'
}

goal = ["open", "high", "previousClose"]


def main(url):
    r = requests.get(url, headers=headers).json()['data'][0]
    print(r)
    print("*" * 20)
    print([r[x] for x in goal])


main("https://www1.nseindia.com/live_market/dynaContent/live_watch/stock_watch/liveIndexWatchData.json")

Выход:

{'timeVal': 'Apr 24, 2020 15:33:26', 'indexName': 'NIFTY 50', 'previousClose': '9,313.90', 'open': '9,163.90', 'high': '9,296.90', 'low': '9,141.30', 'last': '9,154.40', 'percChange': '-1.71', 'yearHigh': '12,430.50', 'yearLow': '7,511.10', 'indexOrder': '0.00'}
********************
['9,163.90', '9,296.90', '9,313.90']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...