Могу ли я извлечь оба табличных значения, которые имеют тот же класс, с помощью скрапа? - PullRequest
0 голосов
/ 22 апреля 2020

У меня проблема с пауком, структура сайта выглядит следующим образом:

<div id="results">
  <table class="table_answers">
    <table>
      <tr>
        <td class="listing">
        </td>
        <td class="listing">
        </td>
      </tr>
    </table>
  </table>
  <table class="table_answers">
    <table>
      <tr>
        <td class="listing">
        </td>
        <td class="listing">
        </td>
      </tr>
    </table>
  </table>

Только таблицы с именами, которые я написал, имеют любой класс или идентификатор. Я хочу извлечь текст из каждого td с классом «перечисление» отдельно, и я использую этот код:

def parse(self, response):
    item_id = response.css('.listing::text').extract()

    row_data = zip(item_id)

    for item in row_data:
        scraped_info = {
            # 'page': response.url,
            'item_id': item[0],
        }

        yield scraped_info

Этот код дает результат, где первая строка из первого списка первой таблицы и второй строка является вторым списком второй таблицы. Я попытался изменить его на: item_id = response.css('.listing::text')[0].extract(), надеясь, что он извлечет только первую строку с классом «перечисление», но вместо этого он дает только первой таблице первое значение td по одной букве в строке. Спасибо за вашу помощь.

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