def load(self, keys: List[str] = [], exclude: List[str] = []) -> None: """ Scrape data at self.url and parse into attributes Parameters ---------- keys : List[str] Specify what keys to exclusively load as strings in a list. If no keys are specified then the scrape will default load all data points. exclude : List[str] Specify what keys to exclude from being loaded. If no keys are specified, then no data points will be excluded. """ if type(keys) == str: keys = [keys] if type(exclude) == str: exclude = [exclude] self.json_dict = json_from_url(self.url) self.flat_json_dict = FlatJSONDict(self.json_dict) scraped_dict = parse_json_from_mapping( json_dict=self.flat_json_dict, map_dict=self._Mapping.return_mapping(keys=keys, exclude=exclude), ) self._load_into_namespace(scraped_dict=scraped_dict) self.scrape_timestamp = datetime.datetime.now()
def test_json_from_url(): url = "https://www.instagram.com/chris_greening/" json_dict = json_from_url(url) assert type(json_dict) == dict assert "entry_data" in json_dict