Method: Forki::Scraper#find_graphql_data_strings

Defined in:
lib/forki/scrapers/scraper.rb

#find_graphql_data_strings(objs = [], html_str) ⇒ Object

Returns all GraphQL data objects embedded within a string Finds substrings that look like ‘“data”: …’ and converts them to hashes



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/forki/scrapers/scraper.rb', line 52

def find_graphql_data_strings(objs = [], html_str)
  data_marker = '"data":{'
  data_start_index = html_str.index(data_marker)
  return objs if data_start_index.nil? # No more data blocks in the page source

  data_closure_index = find_graphql_data_closure_index(html_str, data_start_index)
  return objs if data_closure_index.nil?

  graphql_data_str = html_str[data_start_index...data_closure_index].delete_prefix('"data":')
  objs + [graphql_data_str] + find_graphql_data_strings(html_str[data_closure_index..])
end