Как скачать файл по ссылке с расширением типа с помощью scrapy
Я использую скрап для очистки веб-сайта и могу загрузить файл со страницы, однако все, что загружается, представляет собой простой текстовый файл. Как мне скачать его с его типом расширения? Я загружаю скрипты, и поэтому для загрузки необходим правильный тип расширения.
Например, если я загружаю эксплойты из exploit-db, ссылка, по которой я иду, чтобы загрузить их, будет, например: https://www.exploit-db.com/exploits/19832/ и ссылка, из которой я извлеку там можно скачать с https://www.exploit-db.com/download/19832 который, если я нажму на него обычно, загрузит файл ruby. Но с помощью скрапа он сохраняется в виде текстового файла. Есть ли способ скачать его как.rb с помощью scrapy?
1 ответ
Просто сохраните как filename.rb
, Все файлы являются текстовыми / двоичными файлами. Расширение предназначено только для того, чтобы сообщить операционной системе, что нужно использовать для понимания этого файла.
(В некоторых операционных системах расширение даже не требуется, так как файлы имеют заголовки в начале файла, указывающие, что они есть)
Вы можете попробовать это:
scrapy shell https://www.exploit-db.com/download/19832
Тогда в скорлупе или вашем пауке просто сделайте:
with open('ruby_file.rb', 'wb') as ruby_file:
ruby_file.write(response.body)