У меня проблемы с утилизацией данных с использованием моего скрипта-паука, хотя похожий код работает, когда я тестирую его в оболочке 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]», что помогаетселектор работает правильно. Однако в сценарии я не могу этого сделать, потому что я разделяю два компонента.
Любые идеи о том, как я могу обойти это?
Заранее спасибо за любую помощь!