Я пытаюсь выбрать значения, содержащиеся в последнем столбце таблицы по адресу: https://ca.finance.yahoo.com/q/hp?s=bmo.TO&a=02&b=2&c=2005&d=02&e=2&f=2015&g=mPython: Если заявления и Scrapy XPath селектор
Обычно, это было бы очень просто. Что-то вроде:
response.xpath('//table//table//tr[::6]/text()').extract()
Однако, п-я элемента постоянно изменяется из-за эти дивидендные строки Yahoo выбирает, чтобы бросить там. Тем не менее, я заметил, что для каждой строки, что я хочу, чтобы выбрать данные, первый тд содержит:
Feb 2, 2015
вместо:
2015-01-29
Поэтому я пытаюсь построить код, который следует логика, где, если первая ячейка таблицы содержит ЛЮБЫЕ буквы, выберите последний столбец и добавьте его в список. Код, который у меня есть, ниже:
returns = []
trows = response.xpath('//table//table//tr')
for tr in trows:
# don't know why I need to use "2" in the following line, but that's what gives me the first value.
check = response.xpath('//td[2]/text()').extract()
if any(c.isalpha() for c in check) == True:
these = tr[6]
returns.append(these)
Это содержит всевозможные проблемы, хотя, как я уверен, вы можете себе представить. Это дает мне значение 1 td
повторяется столько раз, сколько в таблице есть tr
. Когда конечный результат, который мне нужен, является последним td
.
Очень благодарен за любую полученную помощь! Я пытаюсь сделать это для проекта класса финансов, чтобы изучить python вместо ввода значений вручную.
Cheers!
Вы, сэр, потрясающие. Спасибо. Работает как шарм. – thefoxrocks