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 |