def get_response( self, scraper: scrapelib.Scraper) -> Optional[requests.models.Response]: return scraper.request(method=self.method, url=self.url, data=self.data, headers=self.headers)
def shell(url: str, verb: str, scraper: Scraper) -> None: """ Start a session to interact with a particular page. """ try: from IPython import embed # type: ignore except ImportError: # pragma: no cover click.secho("shell command requires IPython", fg="red") return # import selectors so they can be used without import from .selectors import SelectorError, XPath, SimilarLink, CSS # noqa resp = scraper.request(verb, url) root = lxml.html.fromstring(resp.content) # noqa click.secho(f"spatula {VERSION} shell", fg="blue") click.secho("available selectors: CSS, SimilarLink, XPath", fg="blue") click.secho("local variables", fg="green") click.secho("---------------", fg="green") click.secho("url: %s" % url, fg="green") click.secho("resp: requests Response instance", fg="green") click.secho(f"root: `lxml HTML element` <{root.tag}>", fg="green") embed()