@@ -336,14 +336,14 @@ def add_xpath(self, field_name, xpath, *processors, **kw):
336336
337337 """
338338 self .field_tracker [f"{ field_name } _xpath" ] += 1
339- values = self ._get_xpathvalues (field_name , xpath , ** kw )
339+ values = self .get_selector_values (field_name , xpath , 'xpath' , ** kw )
340340 self .add_value (field_name , values , * processors , ** kw )
341341
342342 def replace_xpath (self , field_name , xpath , * processors , ** kw ):
343343 """
344344 Similar to :meth:`add_xpath` but replaces collected data instead of adding it.
345345 """
346- values = self ._get_xpathvalues (field_name , xpath , ** kw )
346+ values = self .get_selector_values (field_name , xpath , 'xpath' , ** kw )
347347 self .replace_value (field_name , values , * processors , ** kw )
348348
349349 def get_xpath (self , xpath , * processors , ** kw ):
@@ -367,12 +367,9 @@ def get_xpath(self, xpath, *processors, **kw):
367367 loader.get_xpath('//p[@id="price"]', TakeFirst(), re='the price is (.*)')
368368
369369 """
370- values = self ._get_xpathvalues (None , xpath , ** kw )
370+ values = self .get_selector_values (None , xpath , 'xpath' , ** kw )
371371 return self .get_value (values , * processors , ** kw )
372372
373- def _get_xpathvalues (self , field_name , xpaths , ** kw ):
374- return self .get_selector_values (field_name , xpaths , self .selector .xpath , ** kw )
375-
376373 def add_css (self , field_name , css , * processors , ** kw ):
377374 """
378375 Similar to :meth:`ItemLoader.add_value` but receives a CSS selector
@@ -392,14 +389,14 @@ def add_css(self, field_name, css, *processors, **kw):
392389 loader.add_css('price', 'p#price', re='the price is (.*)')
393390 """
394391 self .field_tracker [f"{ field_name } _css" ] += 1
395- values = self ._get_cssvalues (field_name , css , ** kw )
392+ values = self .get_selector_values (field_name , css , 'css' , ** kw )
396393 self .add_value (field_name , values , * processors , ** kw )
397394
398395 def replace_css (self , field_name , css , * processors , ** kw ):
399396 """
400397 Similar to :meth:`add_css` but replaces collected data instead of adding it.
401398 """
402- values = self ._get_cssvalues (field_name , css , ** kw )
399+ values = self .get_selector_values (field_name , css , 'css' , ** kw )
403400 self .replace_value (field_name , values , * processors , ** kw )
404401
405402 def get_css (self , css , * processors , ** kw ):
@@ -422,16 +419,12 @@ def get_css(self, css, *processors, **kw):
422419 # HTML snippet: <p id="price">the price is $1200</p>
423420 loader.get_css('p#price', TakeFirst(), re='the price is (.*)')
424421 """
425- values = self ._get_cssvalues (None , css , ** kw )
422+ values = self .get_selector_values (None , css , 'css' , ** kw )
426423 return self .get_value (values , * processors , ** kw )
427424
428- def _get_cssvalues (self , field_name , csss , ** kw ):
429- return self .get_selector_values (field_name , csss , self .selector .css , ** kw )
425+ def get_selector_values (self , field_name , selector_rules , selector_name , ** kw ):
430426
431- def get_selector_values (self , field_name , selector_rules , selector , ** kw ):
432- """Provides an abstraction to _get_xpathvalues() and _get_cssvalues()
433- since they share the same components.
434- """
427+ selector = getattr (self .selector , selector_name , None )
435428
436429 self ._check_selector_method ()
437430
0 commit comments