This function wraps generic_elsevier_api to give a scopus search from the Elsevier Scopus Search API

Searches SCOPUS to get information about documents on an author.

scopus_search(query, api_key = NULL, count = 200,
  view = c("STANDARD", "COMPLETE"), start = 0, verbose = TRUE,
  max_count = 20000,
  http = "https://api.elsevier.com/content/search/scopus",
  headers = NULL, wait_time = 0, ...)

sciencedirect_search(count = 100, ...)

scidir_search(count = 100, ...)

Arguments

query

Query string to search on SCOPUS

api_key

API Key for Elsevier

count

number of records to retrieve (below 200 for STANDARD, below 25 for COMPLETE views, see https://dev.elsevier.com/api_key_settings.html).

view

type of view to give, see https://api.elsevier.com/documentation/ScopusSearchAPI.wadl

start

where should the records start gathering

verbose

Print diagnostic messages

max_count

Maximum count of records to be returned.

http

Address for scopus API

headers

additional headers to be added to add_headers

wait_time

The time in seconds to wait across consecutive requests of a single search (when records > 25)

...

Arguments to be passed to the query list for GET

Value

List of entries from SCOPUS

Examples

if (have_api_key()) { res = scopus_search(query = "all(gene)", max_count = 20, count = 10) df = gen_entries_to_df(res$entries) head(df$df) sci_res = sciencedirect_search(query = "heart+attack AND text(liver)", max_count = 30, count = 25) sci_df = gen_entries_to_df(sci_res$entries) nt = sciencedirect_search(query = "title(neurotoxin)", max_count = 20, count = 10) nt_df = gen_entries_to_df(nt$entries) nt_df = nt_df$df }
#> The query list is:
#> list(query = "all(gene)", count = 10, start = 0, view = "STANDARD") #> $query #> [1] "all(gene)" #> #> $count #> [1] 10 #> #> $start #> [1] 0 #> #> $view #> [1] "STANDARD" #> #> Response [https://api.elsevier.com/content/search/scopus?query=all%28gene%29&count=10&start=0&view=STANDARD] #> Date: 2019-09-17 16:30 #> Status: 200 #> Content-Type: application/json;charset=UTF-8 #> Size: 16.5 kB #>
#> Total Entries are 6634109
#> Maximum Count is 20
#> 2 runs need to be sent with current count
#> | |======================================================================| 100%
#> Number of Output Entries are 20
#> The query list is:
#> list(query = "heart+attack AND text(liver)", count = 25, start = 0, #> view = "STANDARD") #> $query #> [1] "heart+attack AND text(liver)" #> #> $count #> [1] 25 #> #> $start #> [1] 0 #> #> $view #> [1] "STANDARD" #> #> Response [https://api.elsevier.com/content/search/sciencedirect?query=heart%2Battack%20AND%20text%28liver%29&count=25&start=0&view=STANDARD] #> Date: 2019-09-17 16:30 #> Status: 200 #> Content-Type: application/json;charset=UTF-8 #> Size: 9.03 kB #>
#> Total Entries are 10
#> Number of Output Entries are 10
#> The query list is:
#> list(query = "title(neurotoxin)", count = 10, start = 0, view = "STANDARD") #> $query #> [1] "title(neurotoxin)" #> #> $count #> [1] 10 #> #> $start #> [1] 0 #> #> $view #> [1] "STANDARD" #> #> Response [https://api.elsevier.com/content/search/sciencedirect?query=title%28neurotoxin%29&count=10&start=0&view=STANDARD] #> Date: 2019-09-17 16:30 #> Status: 429 #> Content-Type: text/xml;charset=UTF-8 #> Size: 226 B #> <error-response> #> <error-code>RATE_LIMIT_EXCEEEDED</error-code> #> <error-message>Rate of requests exceeds specified limits. Recommend lower...
#> Error in get_results(query, start = init_start, count = count, verbose = verbose, headers = headers, ...): Too Many Requests (RFC 6585) (HTTP 429).