code: def run(self, url):
          
          url = self.process_url(url)
          if not url:
              return
          response = self.make_request(self.http, url)
          selector = self.process_response(response)
          entities = []
          for root in self.get_roots(selector):
              entity = self.entity(root)
              entity = self.process_entity(entity)
              if entity:
                  entities.append(entity)
          return EntityList(*entities)
docs: Request URL, scrape response and return an EntityList.