Вопрос:

Почему мой код возвращает пробелы? (соскоб с Scrapy)

python scrapy web-crawler screen-scraping

17 просмотра

1 ответ

11 Репутация автора

Моя цель - вычерчивать комиксы в порядке дня недели и сохранять их в таблице данных Excel. Мой источник - https://comic.naver.com/webtoon/weekday.nhn .

Я имел успех очистки данных непосредственно через терминал и хотел бы написать правильный сценарий для всего процесса, но не имел большого успеха.

прямая очистка данных через терминал response.xpath("//div[@class='list_area daily_all']/div[1]/div/h4/span/text()").extract()приведет к правильному получению данных. Будние дни заказываются из div [1 ~ 7], и этот код возвращает «понедельник».

Следующий код возвращает список комиксов по понедельникам. response.xpath("//div[@class='list_area daily_all']/div[1]/div//ul/li/a[@class='title']/text()").extract()

Однако следующий код не возвращает желаемых результатов.

def parse(self, response):
    for webtoon in response.xpath("//div[@class='list_area daily_all']/div/div"):
        yield {
            'Day': webtoon.xpath('/h4/span/text()').extract(),
            'Title': webtoon.xpath("/ul/li/a[@class='title']/text()").extract(),
        }

Ожидаемый результат будет 7 строк следующего кода в порядке дня недели {'Day': [day], 'Title': [title1, title2, title3]}

Тем не менее, мой код возвращается {'Day': [], 'Title': []}

Я надеюсь, что все это имеет смысл.

Автор: Jun Ahn Источник Размещён: 11.06.2019 10:40

Ответы (1)


0 плюса

356 Репутация автора

Вы должны начать свое регулярное выражение "Day" и "Title" с. (Точка).

Когда вы делаете это, не имеет значения, что вы не используете, response.xpathвы все еще пытаетесь получить h4элемент в корне XML, а не h4тег после list_area daily_alldiv.

webtoon.xpath('/h4/span/text()').extract()

Правильный способ сделать это - добавить точку .перед /h4, эта точка ссылается на текущую позицию вашего предыдущего селектора xpath.

webtoon.xpath('./h4/span/text()').extract()
Автор: Luiz Rodrigues da Silva Размещён: 12.06.2019 02:33
Вопросы из категории :
32x32