'scrapy crawl' делает вещи, но не делает файлы - PullRequest
1 голос
/ 02 апреля 2020

Я новичок ie для python терапии. Когда я запускаю команду 'scrapy crawl name', окно cmd делает что-то очень занято. Но, наконец, он не выплевывает файлы HTML. Кажется, есть много вопросов о том, что скрап не работает, но не смог найти такой как этот случай. Поэтому я отправляю этот вопрос.

Это мои коды.

import scrapy


class PostsSpider(scrapy.Spider): 
        name = "posts"   

        start_urls = [
            'https://blog.scrapinghub.com/page/1/',
            'https://blog.scrapinghub.com/page/2/'
        ]

        def parse(self, response): 
            page = reponse.url.split('/')[-1]
            filename = 'posts-%s.html' % page
            with open(filename, 'wb') as f:
                f.write(response.body) 

Я вошел в 'cd postscrape', где лежат все эти файлы и venv. И активировал venv с помощью 'call venv \ Scripts \ activ.bat'. И, наконец, «cmd crawl posts» на cmd, в котором был активирован venv. Как видите, если мне go нравится это, этот код должен выплевывать два HTML файла 'posts-1. html' и 'posts-2. html'. На самом деле команда не возвращает никакого сообщения об ошибке и, похоже, что-то делает. Но в итоге ничего не возвращается. В чем проблема ??

Спасибо, гений!

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Вы пропустили одну букву 's' в 'ответе'.

page = reponse.url.split('/')[-1]

->

page = response.url.split('/')[-1]
1 голос
/ 02 апреля 2020

Нет необходимости вручную записывать элементы в файл. Вы можете просто сдать предметы и поставить флаг -o следующим образом:

scrapy crawl some_spider -o some_file_name.json

Больше вы можете проверить в документации .

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