【发布时间】:2018-08-27 02:35:06
【问题描述】:
我正在尝试自动化抓取网页表格的过程,例如Investing.com Economic Calendar 如果我们只对显示今天日历的默认选项卡感兴趣,这对 R 来说相当简单。这是R代码:
library(rvest)
library(dplyr)
Econ_webpage <- read_html("https://www.investing.com/economic-calendar/")
Indicators <- Econ_webpage %>% html_nodes("#economicCalendarData") %>%
html_table(fill = TRUE) %>% .[[1]] %>% .[-(1:3),- c(match("Imp.",colnames(.)),ncol(.))]
这会产生下面显示的所需结果。
> head(Indicators)
Time Cur. Event Actual Forecast Previous
4 19:50 JPY BoJ Summary of Opinions
5 19:50 JPY Exports (YoY) (Feb) 1.9% 12.3%
6 19:50 JPY Imports (YoY) (Feb) 17.1% 7.9%
7 19:50 JPY Trade Balance (Feb) -100B -944B
8 20:01 GBP Rightmove House Price Index (MoM) 0.8%
9 21:30 CNY House Prices (YoY) (Feb) 5.0%
但是,如果我想在 Tomorrow 选项卡中抓取表格,我需要使用 Selenium 驱动程序。我已经尝试过 RSelenium,但无法让它在我的机器上工作,所以我在 Python 中尝试了 Selenium。我在 Python 中使用以下代码:
import selenium
from selenium import webdriver
driver.Chrome(executable_path=PATH_TO_CHROMEDRIVER)
driver.get("https://www.investing.com/economic-calendar/")
driver.find_element_by_id("timeFrame_tomorrow").click()
html = driver.page_source
现在我有一个包含所需表数据的 html 字符串,我根本不知道如何有效地解析以生成 R 代码的结果。我可以以某种方式调用 rpy2 包,它允许在 Python 中使用 R 代码,或者其他人知道以与上面相同的形式提取表格的更简单方法?如何解析这个 html 字符串?
【问题讨论】:
标签: python r selenium web-scraping rvest