Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2012 14:42:37

lukaville
Зарегистрирован: 2012-04-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

Пытаюсь загрузить файл с помощью Grab:

g.setup(log_file = 'file.torrent')
g.go('http://freshon.tv/download.php?id=' + fileid + '&type=torrent')

Файл успешно сохраняется, но не читается. Все торрент-клиенты пишут, что файл невалиден. Действительно, если сравнить файл, скаченный из браузера и файл, скаченный этим способом видно, что второй файл отличается, в приложении оригинальный файл из браузера и файл скаченный с помощью Grab. Подскажите, пожалуйста, в чем проблема!

Офлайн

#2 Апрель 3, 2012 14:43:12

lukaville
Зарегистрирован: 2012-04-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

Файлы в прикреплении

Прикреплённый файлы:
attachment sravnenie.zip (24,7 KБ)

Офлайн

#3 Апрель 3, 2012 17:36:54

alexey-grom
От: Новосибирск
Зарегистрирован: 2012-03-09
Сообщения: 14
Репутация: +  3  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

У меня оба способа работают

import sys
from grab import Grab
grab = Grab()
grab.setup(log_file='/tmp/work/1.torrent')
grab.go('http://d.rutor.org/download/185141')
with open('/tmp/work/2.torrent', 'wb') as f:
    f.write(grab.response.body)
    f.close()
sys.exit()

Скорее всего что-то в pycurl. Какая система?



Офлайн

#4 Апрель 3, 2012 18:29:02

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

Скорее всего дело в том, что log_file открывается в текстовом режиме ('w') grab/base.py#cl-438
Сохраняйте файл как в посте alexey-grom (в бинарном режиме ‘wb’).

Офлайн

#5 Апрель 4, 2012 06:41:32

lukaville
Зарегистрирован: 2012-04-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

Спасибо, помог способ alexey-grom

Офлайн

#6 Июнь 11, 2012 14:51:22

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Неверная загрузка файла при использовании Grab

Опция log_file исключительно для отладки. Если надо сохранять содержимое response, то самый правильный путь использовать response.save, где учтён момент с “wb” режимом записи:

g.response.save('/path/to/file')

ну или

open('/path/to/file, ‘wb’).write(g.resbponse.body)

Офлайн

#7 Июнь 13, 2012 09:16:21

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

Блжад, как бесит винда с ее текстовым режимом. А в тройке еще и строки можно писать только в текстовый файл. Что делать?



Офлайн

#8 Июнь 13, 2012 19:42:51

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Неверная загрузка файла при использовании Grab

> Что делать?
В чём проблем, не понял.

Офлайн

#9 Июнь 14, 2012 09:27:38

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Неверная загрузка файла при использовании Grab

lorien
В чём проблем, не понял.
Если открыть файл не в двоичном режиме, винда заменяет \r на \r\n.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version