Scrapy - Как написать на заказ FEED_URI - PullRequest
0 голосов
/ 03 октября 2019

Я новичок в Scrapy, и я хотел бы написать резервные копии HTML, которые s3. Я обнаружил, что, используя следующее, я мог написать html конкретного скрапа:

settings.py

ITEM_PIPELINE = {
    'scrapy.pipelines.files.S3FilesStore': 1
}

AWS_ACCESS_KEY_ID = os.environ['S3_MAIN_KEY']
AWS_SECRET_ACCESS_KEY= os.environ['S3_MAIN_SECRET']

FEED_FORMAT = "json"
FEED_URI=f's3://bucket_name/%(name)s/%(today)s.html'

И затем в своем файле скребка:

def parse(self, response):
    yield {'body': str(response.body, 'utf-8')}

Однако я хотел бы написать ключ, который включает в себя URL-адрес в качестве подпапки, например:

FEED_URI=f's3://bucket_name/%(name)s/%(url)s/%(today)s.html'

Как я могу динамически получить URL-адрес для FEED_URI. Я предполагаю, что в

    def start_requests(self):
        urls = [
            'http://www.example.com',
            'http://www.example_1.com',
            'http://www.example_2.com',
        ]

у меня есть несколько URL. Кроме того, есть ли способ написать необработанный HTML-файл, не вложенный в JSON? Спасибо.

1 Ответ

0 голосов
/ 16 октября 2019

Экспорт фидов не предназначен для экспорта в другой файл для элемента.

Для этого вместо этого напишите конвейер элемента .

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