while(TRUE){
cat = readline(prompt = "Enter any categories you want articles about : ");
url <- str_replace("https://api.nytimes.com/svc/search/v2/articlesearch.json?q=userCategoryHere&api-key=3Ik85TypYHio0ioMKheP1aAKJglXHt5a", "userCategoryHere", cat)
req <- request(url)
resp <- req |> req_perform()
if (resp |> resp_status() == 200){
articles_l <- resp |> resp_body_string()
articles_l <- str_extract(articles_l, "docs.+meta")
articles_l <- articles_l |> str_remove( "docs\":") |> str_remove(",\"meta")
# Create a dataframe with each character as a separate row
df <- fromJSON(articles_l) |>
unnest(cols = multimedia) |>
unnest(cols = keywords, names_sep = "_") |>
unnest(cols = c(byline, headline, legacy)) |>
unnest(cols = person, names_sep = "_s")
break
}
}
## Enter any categories you want articles about :
print(df)
## # A tibble: 7,383 × 56
## abstract web_url snippet lead_paragraph print_section print_page source rank
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <int>
## 1 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 2 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 3 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 4 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 5 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 6 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 7 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 8 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 9 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## 10 Russian… https:… Russia… Bodies were r… A 8 The N… 0
## # ℹ 7,373 more rows
## # ℹ 48 more variables: subtype <chr>, caption <lgl>, credit <lgl>, type <chr>,
## # url <chr>, height <int>, width <int>, xlarge <chr>, xlargewidth <int>,
## # xlargeheight <int>, thumbnail <chr>, thumbnailwidth <int>,
## # thumbnailheight <int>, widewidth <int>, wideheight <int>, wide <chr>,
## # subType <chr>, crop_name <chr>, main <chr>, kicker <chr>,
## # content_kicker <lgl>, print_headline <chr>, name <lgl>, seo <lgl>, …