Source code for crawley.manager.commands.shell
from crawley.crawlers import BaseCrawler
from crawley.extractors import XPathExtractor
from command import BaseCommand
from utils import exit_with_error
[docs]class ShellCommand(BaseCommand):
"""
Shows an url data in a console like the XPathExtractor see it.
So users can interactive scrape the data.
"""
name = "shell"
def validations(self):
return [(len(self.args) >= 1, "No given url")]
def execute(self):
try:
import IPython
except ImportError:
exit_with_error("Please install the ipython console")
url = self.args[0]
crawler = BaseCrawler()
data = crawler._get_data(url)
html = XPathExtractor().get_object(data)
shell = IPython.Shell.IPShellEmbed(argv=[], user_ns={ 'html' : html })
shell()