Предполагается, что приведенный ниже код собирает новостные данные из FinViz, заголовки и URL-адреса прекрасно работают в столбце дат, хотя он не дает ошибок, он возвращает в основном поддельные данные. Это связано с тегом, который я использовал для запроса html. Я не уверен, как или какой тег мне нужно искать, чтобы вернуть дату и время. У некоторых строк только есть время, не зная, что я могу сделать, чтобы добавить соответствующую дату здесь. Спасибо за любые рекомендации.
def get_newsdata(ticker):
"""
Returns a list of sets containing news headline and url
:param ticker: stock symbol
:return: list
"""
NEWS_URL = 'https://finviz.com/news.ashx'
STOCK_URL = 'https://finviz.com/quote.ashx'
page_parsed, _ = http_request_get(url=STOCK_URL, payload={'t': ticker}, parse=True)
dates = [row.text_content() for row in page_parsed.cssselect('td[style="white-space:nowrap"]')]
all_news = page_parsed.cssselect('a[class="tab-link-news"]')
headlines = [row.xpath('text()')[0] for row in all_news]
urls = [row.get('href') for row in all_news]
return list(zip(dates,headlines, urls))
df = get_newsdata('AAPL')