port scrapy shell to unified selector api

This commit is contained in:
Daniel Graña 2013-10-11 19:53:01 -02:00
parent 681af6b258
commit a9eb0b74c8
2 changed files with 4 additions and 11 deletions

View File

@ -11,7 +11,7 @@ from w3lib.url import any_to_uri
from scrapy.item import BaseItem
from scrapy.spider import BaseSpider
from scrapy.selector import XPathSelector, XmlXPathSelector, HtmlXPathSelector, XmlCSSSelector, HtmlCSSSelector
from scrapy.selector import Selector
from scrapy.utils.spider import create_spider_for_request
from scrapy.utils.misc import load_object
from scrapy.utils.response import open_in_browser
@ -24,7 +24,7 @@ from scrapy.exceptions import IgnoreRequest
class Shell(object):
relevant_classes = (BaseSpider, Request, Response, BaseItem,
XPathSelector, Settings)
Selector, Settings)
def __init__(self, crawler, update_vars=None, code=None):
self.crawler = crawler
@ -95,14 +95,7 @@ class Shell(object):
self.vars['spider'] = spider
self.vars['request'] = request
self.vars['response'] = response
self.vars['xxs'] = XmlXPathSelector(response) \
if isinstance(response, XmlResponse) else None
self.vars['xcs'] = XmlCSSSelector(response) \
if isinstance(response, XmlResponse) else None
self.vars['hxs'] = HtmlXPathSelector(response) \
if isinstance(response, HtmlResponse) else None
self.vars['hcs'] = HtmlCSSSelector(response) \
if isinstance(response, HtmlResponse) else None
self.vars['ss'] = Selector(response)
if self.inthread:
self.vars['fetch'] = self.fetch
self.vars['view'] = open_in_browser

View File

@ -31,7 +31,7 @@ class ShellTest(ProcessTest, SiteTest, unittest.TestCase):
@defer.inlineCallbacks
def test_response_selector_html(self):
xpath = 'hxs.select("//p[@class=\'one\']/text()").extract()[0]'
xpath = 'ss.xpath("//p[@class=\'one\']/text()").extract()[0]'
_, out, _ = yield self.execute([self.url('/html'), '-c', xpath])
self.assertEqual(out.strip(), 'Works')