Как вычистить <td>из <tr>, который имеет <td>в таблице? - PullRequest
0 голосов
/ 26 июня 2019

Я использую Python Scrapy для очистки некоторых данных с веб-сайта. На сайте есть несколько таблиц. Например, у него 50 состояний, и в каждом из них есть таблицы от 3 до 5, и я очищаю только таблицу 3.

        table_3 = response.xpath(
        '//*[@id="all"]/div[3]/div/div/div[2]/div/div/div/table[3]').extract()

, а в таблице 3 строки от 3 до 10.

        rows = [item for idx, item in enumerate(
        table_3) if idx in indices] 

Индексы, используемые для определения, существует ли таблица 3, в противном случае она не будет добавлена ​​в строки

Чтобы получить значение <td>, я удаляю все ненужные данные из списка строк.

td = []
for each in rows:
    temp = (each.replace('<table class="unwanted date">',
       '').replace('<tr>', '').replace('</tr>', '').replace('<td>', '').replace('</td>', '').replace('unwanted date', '').replace('unwanted date', '').replace('\n', '').replace(' ', '').replace('</table>', ''))
td.append(temp.split('%'))

for each in td:
        print('The td are', each)

Это не дает мне вывод в правильном формате, и этот метод не работает эффективно.

    table_3 = response.xpath(
        '//*[@id="all"]/div[3]/div/div/div[2]/div/div/div/table[3]').extract()

    rows = [item for idx, item in enumerate(
        table_3) if idx in indices]

    td = []
    for each in rows:
        temp = (each.replace('<table class="unwanted date">',
                             '').replace('<tr>', '').replace('</tr>', '').replace('<td>', '').replace('</td>', '').replace('unwanted date', '').replace('unwanted date', '').replace('\n', '').replace(' ', '').replace('</table>', ''))

        td.append(temp.split('%'))

    for each in td:
        print('The td are', each)
Output: The td are ['$0+4', '$11,230+5.84', '$22,470+6.27', '$247,350+7.65', '']

Expected Output: The td are ['$0+', '$11,230+', '$22,470+', '$247,350+']['4', '5.84', '6.27', '7.65']

Как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...