У меня возникают проблемы с очисткой данных с помощью скрипта паука, хотя аналогичный код работает, когда я тестирую его в оболочке scrapy. Единственная разница в том, что в моем скрипте я разделяю селектор.
Вот селектор, который работает в оболочке:
(//tr[position()>2]/td[position()=2])[1]
А вот и селектор в скрипте:
def parse_forsale(self, response):
listingdata = response.xpath(".//tr[position()>2]") # < PART 1 OF SELECTOR
for data in listingdata:
A = data.xpath(".//td[position()=2][1]").get() # < PART 2 OF SELECTOR
B = data.xpath(".//td[position()=2][2]").get()
C = data.xpath(".//td[position()=2][3]").get()
D = data.xpath(".//td[position()=2][4]").get()
E = data.xpath(".//td[position()=2][5]").get()
F = data.xpath(".//td[position()=2][6]").get()
G = data.xpath(".//td[position()=2][7]").get()
H = data.xpath(".//td[position()=2][8]").get()
Мое обоснованное предположение, почему это не работает, заключается в том, что когда я использую селектор в оболочке, я могу поставить круглые скобки перед // и прямо перед [1], что помогает селектору работать правильно. Однако в сценарии я не могу этого сделать, потому что разделяю два компонента.
Любые идеи о том, как я могу обойти это?
Заранее благодарю за любую помощь!