scrapy скачать excel с сайта - PullRequest
       8

scrapy скачать excel с сайта

1 голос
/ 07 апреля 2019

Моя цель - автоматическая загрузка определенного файла Excel с сайта.

У меня есть паук, который находит релевантную ссылку на файл Excel и передает ее по конвейеру.

Функция урожайности у паука

def extracting_function():
    #do something  
    yield scrapy.Request(url=dl_path, callback=self.download_excel)

def download_excel(self, response):
    fn = response.url.split('/')[-1]
    self.logger.info('Saving EXL %s', fn)
    dl_item = DownloadItem(body=response.body, url=response.url)
    yield dl_item

Разбор трубопровода:

def process_item(self, item, spider):
    dl_url = item['url']
    fn = dl_url.split('/')[-1]
    self.replace_and_save(item['body'], fn)
    return item

def replace_and_save(self, to_save, fn):
    o_fn = os.path.join(self.save_path, fn)
    ##replace
    if os.path.exists(o_fn):
        old_file = self.get_one_excel_df(o_fn)
        new_name = '{0}_{1}'.format(fn, datetime.datetime.today())
        with open(new_name, 'wb') as ouf:
            pickle.dump(ouf, old_file)
        print('Removing old file {0} after creating a backup version of it'.format(o_fn))
        os.remove(o_fn)

    with open(o_fn, 'wb') as ouf:
        ouf.write(to_save)

Файл сохраняется, но это не файл xlsx, который я намеревался, а тело страницы (откуда я удалил ссылку для скачивания).

Что я здесь не так делаю?

Спасибо

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