【问题标题】:How to Load the Earnings Calendar data from TradingView link and into Dataframe [closed]如何从 TradingView 链接加载收益日历数据并将其加载到 Dataframe [关闭]
【发布时间】:2023-02-11 11:27:06
【问题描述】:
我想从 TradingView 链接加载收益日历数据并加载到 Dataframe 中。
Link: https://in.tradingview.com/markets/stocks-india/earnings/
Filter-1: Data for "This Week"
我无法选择“本周”选项卡。有什么帮助吗?
【问题讨论】:
标签:
python
python-3.x
pandas
selenium
web-scraping
【解决方案1】:
我注意到很少有以i-hidden 类为特征的隐藏列。因此,首先我们只选择可见的列。然后我们得到这些列的data-field,这样我们就可以在行中选择对应的值了。接下来我们得到表的标题和行。然后我们遍历数据字段以获取每列中的所有单元格值。最后,我们从一个以标题为键、以列为值的字典创建数据框。
visible_columns = driver.find_elements(By.CSS_SELECTOR, 'div.tv-screener__content-pane thead th:not([class*=i-hidden])')
data_field = [c.get_attribute('data-field') for c in visible_columns]
header = [c.text.split('
')[0] for c in visible_columns]
rows = driver.find_elements(By.XPATH, "//div[@class='tv-screener__content-pane']//tbody/tr")
columns = []
for field in data_field:
column = driver.find_elements(By.XPATH, f"//div[@class='tv-screener__content-pane']//tbody/tr/td[@data-field-key='{field}']")
columns.append([col.text.replace('
',' - ') for col in column])
pd.DataFrame(dict(zip(header, columns)))
输出