@@ -30,6 +30,7 @@ def __init__(self, crawler, update_vars=None, inthread=False, code=None):
30
30
self .item_class = load_object (crawler .settings ['DEFAULT_ITEM_CLASS' ])
31
31
self .inthread = inthread
32
32
self .code = code
33
+ self .vars = {}
33
34
34
35
def start (self , * a , ** kw ):
35
36
# disable accidental Ctrl-C key press from shutting down the engine
@@ -77,18 +78,15 @@ def fetch(self, request_or_url, spider=None):
77
78
self .populate_vars (url , response , request , spider )
78
79
79
80
def populate_vars (self , url = None , response = None , request = None , spider = None ):
80
- item = self .item_class ()
81
- self .vars = {}
82
- self .vars ['item' ] = item
81
+ self .vars ['item' ] = self .item_class ()
83
82
self .vars ['settings' ] = self .crawler .settings
84
- if url :
85
- if isinstance (response , XmlResponse ):
86
- self .vars ['xxs' ] = XmlXPathSelector (response )
87
- if isinstance (response , HtmlResponse ):
88
- self .vars ['hxs' ] = HtmlXPathSelector (response )
89
- self .vars ['response' ] = response
90
- self .vars ['request' ] = request
91
- self .vars ['spider' ] = spider
83
+ self .vars ['spider' ] = spider
84
+ self .vars ['request' ] = request
85
+ self .vars ['response' ] = response
86
+ self .vars ['xxs' ] = XmlXPathSelector (response ) \
87
+ if isinstance (response , XmlResponse ) else None
88
+ self .vars ['hxs' ] = HtmlXPathSelector (response ) \
89
+ if isinstance (response , HtmlResponse ) else None
92
90
if self .inthread :
93
91
self .vars ['fetch' ] = self .fetch
94
92
self .vars ['view' ] = open_in_browser
0 commit comments