После .csv экспортировать элементы только в одну ячейку - PullRequest
0 голосов
/ 12 мая 2018

Имея следующее:

import scrapy

class ScrapeMovies(scrapy.Spider):
    name='final'

    start_urls = [
        'https://www.trekearth.com/members/'
    ]

    def parse(self, response):
        for entry in response.xpath('//table[@class="member-table"]'):
            yield{
                'name': entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract()
            }

Я хочу извлечь имена пользователей на одной странице, однако после .csv имена экспорта находятся в одной ячейке. Как это изменить? Какой метод является наиболее подходящим?

Я сохраняю файлы в формате csv, просто добавив -o file.csv при запуске сканера.

Вывод, который я получаю, находится в строке номер 1.

enter image description here

Требуемый вывод более или менее похож на строки от 3 до 5.

Пожалуйста, объясните, почему этот вопрос заслуживает отрицательного ответа? Чтобы улучшить качество моих вопросов, я хочу знать об этом.

1 Ответ

0 голосов
/ 12 мая 2018

Похоже,

entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract()

на самом деле представляет собой список имен.

Попробуйте повторить его и получить один элемент для каждого имени:

import scrapy

class ScrapeMovies(scrapy.Spider):
    name='final'

    start_urls = [
        'https://www.trekearth.com/members/'
    ]

    def parse(self, response):
        for entry in response.xpath('//table[@class="member-table"]'):
            for name in entry.xpath('.//tr[@class="row"]/td/p/a/text()').extract():
                yield {'name': name}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...