将本地 HTML 文件读入 R 以进行数据提取

Reading local HTML files into R for data extraction

我在一个文件夹中有一组本地 html 文件。使用下面的代码我可以导入数据。下一步我想合并几个文件(都具有相同的格式),将数据和内容提取为表格格式以供进一步分析

source <- FactivaSource("page1.html")
corpus <- Corpus(source, readerControl = list(language = NA))
inspect(corpus)
meta(corpus[[1]])

将语料库转换为数据框的最简单方法是使用 tidytext::tidy,例如:

library(tm)
library(tidytext)

data("crude") # crude dataset is from `tm` package
tidy(crude)

一旦你将所有的语料库变成数据框,你就可以以任何有意义的方式组合它们——也就是说,我会把语料库变成数据框,然后合并它们,而不是反过来(虽然这可能是也可以)。

输出:

> tidytext::tidy(crude)
# A tibble: 20 x 16
   author datetimestamp       description heading id    language origin topics lewissplit
   <chr>  <dttm>              <chr>       <chr>   <chr> <chr>    <chr>  <chr>  <chr>     
 1 NA     1987-02-26 18:00:56 ""          DIAMON… 127   en       Reute… YES    TRAIN     
 2 BY TE… 1987-02-26 18:34:11 ""          OPEC M… 144   en       Reute… YES    TRAIN     
 3 NA     1987-02-26 19:18:00 ""          TEXACO… 191   en       Reute… YES    TRAIN     
 4 NA     1987-02-26 19:21:01 ""          MARATH… 194   en       Reute… YES    TRAIN     
 5 NA     1987-02-26 20:00:57 ""          HOUSTO… 211   en       Reute… YES    TRAIN     
 6 NA     1987-03-01 04:25:46 ""          KUWAIT… 236   en       Reute… YES    TRAIN     
 7 By Je… 1987-03-01 04:39:14 ""          INDONE… 237   en       Reute… YES    TRAIN     
 8 NA     1987-03-01 06:27:27 ""          SAUDI … 242   en       Reute… YES    TRAIN     
 9 NA     1987-03-01 09:22:30 ""          QATAR … 246   en       Reute… YES    TRAIN     
10 NA     1987-03-01 19:31:44 ""          SAUDI … 248   en       Reute… YES    TRAIN     
11 NA     1987-03-02 02:05:49 ""          SAUDI … 273   en       Reute… YES    TRAIN     
12 NA     1987-03-02 08:39:23 ""          GULF A… 349   en       Reute… YES    TRAIN     
13 NA     1987-03-02 08:43:22 ""          SAUDI … 352   en       Reute… YES    TRAIN     
14 NA     1987-03-02 08:43:41 ""          KUWAIT… 353   en       Reute… YES    TRAIN     
15 NA     1987-03-02 09:25:42 ""          PHILAD… 368   en       Reute… YES    TRAIN     
16 NA     1987-03-02 12:20:05 ""          STUDY … 489   en       Reute… YES    TRAIN     
17 NA     1987-03-02 12:28:26 ""          STUDY … 502   en       Reute… YES    TRAIN     
18 NA     1987-03-02 13:13:46 ""          UNOCAL… 543   en       Reute… YES    TRAIN     
19 By BE… 1987-03-02 15:38:34 ""          NYMEX … 704   en       Reute… YES    TRAIN     
20 NA     1987-03-02 15:49:06 ""          ARGENT… 708   en       Reute… YES    TRAIN     
# … with 7 more variables: cgisplit <chr>, oldid <chr>, places <named list>, people <chr>,
#   orgs <chr>, exchanges <chr>, text <chr>