Comments 113
UFO just landed and posted this here
Спасибо! Статья очень полезна.
Вы меня направили на путь, сделать такое же только на C++.
Вы меня направили на путь, сделать такое же только на C++.
+9
И попробую у себя сделать в CHM
-2
Не надо. CHM, как бы так сказать, немного мёртвый формат, и полностью ненужен при наличии PDF. Делайте в PDF.
+22
Хорошо! Завтра поеду за видяхой, а в понедельник буду искать некоторую инфу и начинать собирать проект.
+5
Посмотрите в сторону Qt. В наличии:
— WebKit в качестве рендера
— PDF принтер в комплекте
— поддержка БД, можно сразу делать каталог
— WebKit в качестве рендера
— PDF принтер в комплекте
— поддержка БД, можно сразу делать каталог
+3
сделайте fb2, владельцам электронных читалок на радость
0
И epub для stanz'ы?:) А лучше поработать с evernote api и нужные статьи перенести туда, благо клиенты под любую ось есть.
На самом деле, избранное так захламлено, как и любые другие закладки, нужна кнопочка почистить всё избранное, а то там с 2007 столько накопилось и уже не актуального, но это уже в адрес хабрАдминам.
На самом деле, избранное так захламлено, как и любые другие закладки, нужна кнопочка почистить всё избранное, а то там с 2007 столько накопилось и уже не актуального, но это уже в адрес хабрАдминам.
+2
Было бы интересно посмотреть)
0
А потом издать книгу…
+19
А материалы не принадлежат хабрахабру или авторам? Придётся договариваться.
0
Прошу прощения, посмотрел соглашение, видимо все статьи принадлежат авторам. Придётся договариваться лично с каждым :)
+3
Счас как начнется хабраэффект хабру…
+9
Кстати, было бы неплохо если бы выпускался ежемесячный журнал с лучшими постами хабра. Яб даже подписался на такое ) Жаль, минусовать в журнале не получится ))))
+28
Отличная идея для сервиса:
Выбираете частоту генерации журнала, выбираете любимый формат, вводите e-mail и готово!
Выбираете частоту генерации журнала, выбираете любимый формат, вводите e-mail и готово!
+2
Печатать QR-коды с id выпуска\статьи, переходы засчитывать как ± в карму ))
Хм.
Хм.
+7
На то статьи и лучшие, чтобы их не минусовать уже )
+10
У меня точна такая же идея была…
В Украине есть такая газета «Компьютер». Так вот в последняя время им нету чего писать. Если бы они печатали по 10 топиков, я бы покупал их чаще ;)
В Украине есть такая газета «Компьютер». Так вот в последняя время им нету чего писать. Если бы они печатали по 10 топиков, я бы покупал их чаще ;)
0
был же хабрадайжест. разве не то?
+3
habradigest.ru но вроде проект помер
+1
Неделя Python на Хабре)
+9
Не пользуйтесь дропбоксом в качестве хостинга картинок для хабра, забанят же за количество запросов.
+3
Я так всегда делал, даже картинка из новогоднего поздравления, которое висело на главной и было много раз прочитано, и та хостилась на дропбоксе. Или у вас есть личный негативный опыт?
0
+3
Спасибо, интересный топик.
Насколько я из него понял, если не использовать дропбокс в коммерческих целях (например, используя его API сделать файлхостинг платный или прикрутить его к сайту, с целью отдачи через дропбокс файлов пользователям), то все нормально будет.
По крайней мере, меня до сих пор не забанили, а я в своих примерно 10-15 топиках точно использовал дропбокс.
А вот некий сервис пикуча.ру, который мне раньше нравился, спустя примерно полтора года, ничтоже сумняшеся удалил все мои картинки со своего сайта. :(
Насколько я из него понял, если не использовать дропбокс в коммерческих целях (например, используя его API сделать файлхостинг платный или прикрутить его к сайту, с целью отдачи через дропбокс файлов пользователям), то все нормально будет.
По крайней мере, меня до сих пор не забанили, а я в своих примерно 10-15 топиках точно использовал дропбокс.
А вот некий сервис пикуча.ру, который мне раньше нравился, спустя примерно полтора года, ничтоже сумняшеся удалил все мои картинки со своего сайта. :(
+1
дровбокс живёт на амазоне в облаке,
на амазоне есть плата за запросы.
большое количество запросов не выгодно создателям дропбокса.
на амазоне есть плата за запросы.
большое количество запросов не выгодно создателям дропбокса.
0
aws.amazon.com/s3/#pricing
$0.01 per 10,000 Requests — не думаю, что Хабр способен обанкротить DropBox)
$0.01 per 10,000 Requests — не думаю, что Хабр способен обанкротить DropBox)
+3
И не только за запросы, но и за трафик, 15 центов за гиг, кажется.
0
Да вроде с предыдущим топиком продержался, зато изображения по истечении времени не удаляются. И согласен с комментом ниже, интересует негативный опыт использования, не хотелось бы быть там забаненым…
+3
О_о, в хабре есть избранное! Нужно почаще заходить в свой профиль)
0
Автора топика в pdf-ах тоже можно сделать ссылочкой на его хабрацентр
+3
Спасибо за наводку на python-pisa, давно думал чем бы заменить перловый html2ps, но все руки не доходили поискать.
0
Что-то у него с кирилическими шрифтами не того :( Ладно, будет время разберемся.
0
У меня была идея что-то типа HabraMag я также верстать собрался уже… а потом подумал, народ может негативно отнестись, да и Администрация не знаю как ответит на это… да и нужно мне еще 1-2 человека, для подготовки контента.
Если бы я уверен что прокатит, я бы уже наконец дорисовал набросок журнала)))
Если бы я уверен что прокатит, я бы уже наконец дорисовал набросок журнала)))
0
Идея уже была реализована — habrahabr.ru/blogs/habradigest/
+2
Объясните как воспользоваться фиксом.
0
Черт, отправилось. Правлю файл /usr/lib/python2.6/dist-packages/PIL/Image.py
Нахожу строчку с def split(self):
Как там что править? Может кто нибудь выложить уже исправленный этот блок?
Нахожу строчку с def split(self):
Как там что править? Может кто нибудь выложить уже исправленный этот блок?
0
блин, напугали, думал скрипт так сверстал)
+1
Был уже когда-то habradigest
0
пока набросок… но если были бы предложения то думаю можно было бы сверстать пару выпусков, а если было бы популярное, то выпускали бы постоянно…
0
Вообще журнал на основе статей с хабра это идея интересная, но думаю основная ее проблема в том, что так как хабр довольно разносторонний, сложно будет найти основную тему журнала
0
А что мешает просто помещать туда лучшие статьи?
0
Да собственно ничего, просто получится еще один habradigest и, боюсь, его постигнет та же участь(
0
Обработал все посты, судя по логу, а потом выдал:
Prepare PDF…
No handlers could be found for logger «ho.pisa»
Prepare PDF…
No handlers could be found for logger «ho.pisa»
0
Prepare PDF…
в этот момент идет сборка пдф файла, дальше могут идти ошибки, подробнее их можно посмотреть если расскомментировать в pdf_gen.py строчку #pisa.showLogging(). 99% там будут ошибки о том, что какой-то картинки уже не существует HTTPError: HTTP Error 404: Not Found, что актуально для старых топиков. Из-за этого на процесс сборки уходит больше времени. Например на все мое избранное ушло порядка 20 минут только на одну сборку, поэтому лучше сохраняться с интервалом
в этот момент идет сборка пдф файла, дальше могут идти ошибки, подробнее их можно посмотреть если расскомментировать в pdf_gen.py строчку #pisa.showLogging(). 99% там будут ошибки о том, что какой-то картинки уже не существует HTTPError: HTTP Error 404: Not Found, что актуально для старых топиков. Из-за этого на процесс сборки уходит больше времени. Например на все мое избранное ушло порядка 20 минут только на одну сборку, поэтому лучше сохраняться с интервалом
0
а сама pdf генерится?
0
Попробовал сгенерить пдфку с вашим избранным, после где-то 30 минут выдал пдфку, 34мб избранного :)
0
Я поначалу просто подумал что она зависла. Раскомментировал как вы сказали, вроде процесс пошел, судя по вылетающим ошибкам. А почему так долго весь процесс то происходит?
0
ну, если расскоментить еще три строчки в основном скрипте, можно увидеть сгенерированный html, весом 5-10 мб :), который появляется после прохождения строчек в консоли, на основе чего создается pdf, а дальше файлик грубо говоря отдается pisa, где я уже, к сожалению, не могу повлиять на время ее работы, поэтому и советую разбивать по датам
0
UFO just landed and posted this here
Если честно, я бы вас пивом угостил за такой полезный скрипт )
Будите в Киеве, пишите ;)
Спасибо!
Будите в Киеве, пишите ;)
Спасибо!
+2
UFO just landed and posted this here
Я еще не добрался до компьютера, но хотел бы заранее спросить: можно ли настраивать формат бумаги? Я бы хотел подогнать под экран киндла
0
До этого момента с Питоном знаком не был, но уж очень захотелось заиметь PDF версию избранного.
Итак, небольшая инструкция по использованию данного скрипта под Windows:
1. Ставим Python 2.7.1 x86 (под версией 3.0 и выше скрипт не работает, под x64 проблемы с _imaging)
2. Ставим pisa 3.0.31 и необходимые для неё модули:
Часть модулей устанавливается через Windows Installer,
часть командой C:\python27\python.exe setup.py install
ReportLab Toolkit 2.5, html5lib 0.9, PyPdf 1.13, PIL 1.1.7, setuptools 0.6c11, pisa 3.0.33.
3. Патчим C:\Python27\Lib\site-packages\PIL\Image.py согласно комментарию.
4. Редактируем fav2pdf.py по инструкции в посте.
5. C:\Python27\python.exe fav2pdf.py
6. PROFIT и спасибо Автору.
P.S. По окончанию работы скрипт всётаки выдал ошибку в pisa_document.py", line 229, in pisaDocument
Тем не менее PDF файл успешно создался и содержит все статьи из избранного.
Итак, небольшая инструкция по использованию данного скрипта под Windows:
1. Ставим Python 2.7.1 x86 (под версией 3.0 и выше скрипт не работает, под x64 проблемы с _imaging)
2. Ставим pisa 3.0.31 и необходимые для неё модули:
Часть модулей устанавливается через Windows Installer,
часть командой C:\python27\python.exe setup.py install
ReportLab Toolkit 2.5, html5lib 0.9, PyPdf 1.13, PIL 1.1.7, setuptools 0.6c11, pisa 3.0.33.
3. Патчим C:\Python27\Lib\site-packages\PIL\Image.py согласно комментарию.
4. Редактируем fav2pdf.py по инструкции в посте.
5. C:\Python27\python.exe fav2pdf.py
6. PROFIT и спасибо Автору.
P.S. По окончанию работы скрипт всётаки выдал ошибку в pisa_document.py", line 229, in pisaDocument
Тем не менее PDF файл успешно создался и содержит все статьи из избранного.
+2
у меня при завершении появилась ошибка и файл pdf не открывается:
…
…
Processed page 18 of 18:
— 161 Topic: Веб-дизайн->Как сделать favicon в png
162 Topic: Web-разработка->10 рекомендаций по html-верстке электронных писем
163 Topic: Управление проектами->Концепт маленькой веб-студии в суровых сибирских условиях
— Prepare PDF…
No handlers could be found for logger «ho.pisa»
…
…
Processed page 18 of 18:
— 161 Topic: Веб-дизайн->Как сделать favicon в png
162 Topic: Web-разработка->10 рекомендаций по html-верстке электронных писем
163 Topic: Управление проектами->Концепт маленькой веб-студии в суровых сибирских условиях
— Prepare PDF…
No handlers could be found for logger «ho.pisa»
0
А работа скрипта завершилась? Судя по количеству избранного, файлик еще генерится…
0
Действительно работа не завершилась, но после завершения вылезла ошибка о котороы вы описали в дополнении, подскажите как поставить патч?
Ещё избранного получилось 163 из 174 но я понимаю это из за закрытых топиков.
Ещё избранного получилось 163 из 174 но я понимаю это из за закрытых топиков.
0
вот так всё закончилось, файл пустой…
Prepare PDF…
No handlers could be found for logger «ho.pisa»
Traceback (most recent call last):
File «fav2pdf.py», line 101, in
go(content, user+'.pdf')
File "/home/art/Downloads/vrtx64-fav2pdf-ca895ea/pdf_gen.py", line 171, in go
pisa.CreatePDF(content, file(filename, 'wb'))
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_document.py", line 161, in pisaDocument
doc.build(c.story)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 877, in build
self.handle_flowable(flowables)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 793, in handle_flowable
raise LayoutError(ident)
reportlab.platypus.doctemplate.LayoutError: Flowable Хотелось бы сразу предупредить(520.275590551 x 1473.7205) too large on page 489 in frame 'body'(520.275590551 x 759.38976378*) of template 'body'
Prepare PDF…
No handlers could be found for logger «ho.pisa»
Traceback (most recent call last):
File «fav2pdf.py», line 101, in
go(content, user+'.pdf')
File "/home/art/Downloads/vrtx64-fav2pdf-ca895ea/pdf_gen.py", line 171, in go
pisa.CreatePDF(content, file(filename, 'wb'))
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_document.py", line 161, in pisaDocument
doc.build(c.story)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 877, in build
self.handle_flowable(flowables)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 793, in handle_flowable
raise LayoutError(ident)
reportlab.platypus.doctemplate.LayoutError: Flowable Хотелось бы сразу предупредить(520.275590551 x 1473.7205) too large on page 489 in frame 'body'(520.275590551 x 759.38976378*) of template 'body'
0
> Совсем не силен в регулярках, если кто-то подскажет более оптимальные выражения, буду благодарен.
Используйте pyQuery — порт jQuery в Python.
Все-таки разбирать селекторами DOM-дерево намного правильнее и проще, чем регулярками.
Используйте pyQuery — порт jQuery в Python.
Все-таки разбирать селекторами DOM-дерево намного правильнее и проще, чем регулярками.
+1
А нельзя ли сделать модификацию для перегонки не избранного, а отдельного блога в PDF? Можно считать это фич-реквестом.
0
Это уже есть :)
Статья на хабре — habrahabr.ru/blogs/startup/84545/
Сам проект — habrahabr.arrlab.ru
Статья на хабре — habrahabr.ru/blogs/startup/84545/
Сам проект — habrahabr.arrlab.ru
0
xarakternuk@kpuxitka:~/Завантаження/vrtx64-fav2pdf-48a9636$ python fav2pdf.py
/usr/lib/pymodules/python2.6/pyPdf/pdf.py:52: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
Processed page 1 of 11:
— — Processed page 2 of 11:
— — Processed page 3 of 11:
— — Processed page 4 of 11:
— — Processed page 5 of 11:
— — Processed page 6 of 11:
— — Processed page 7 of 11:
— — Processed page 8 of 11:
— — Processed page 9 of 11:
— — Processed page 10 of 11:
— — Processed page 11 of 11:
— — Prepare PDF…
Создается пдф — первая страница и все. Есть идеи?
/usr/lib/pymodules/python2.6/pyPdf/pdf.py:52: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
Processed page 1 of 11:
— — Processed page 2 of 11:
— — Processed page 3 of 11:
— — Processed page 4 of 11:
— — Processed page 5 of 11:
— — Processed page 6 of 11:
— — Processed page 7 of 11:
— — Processed page 8 of 11:
— — Processed page 9 of 11:
— — Processed page 10 of 11:
— — Processed page 11 of 11:
— — Prepare PDF…
Создается пдф — первая страница и все. Есть идеи?
0
Да, в курсе проблемы. Чуток освобожусь — поправлю.
0
Отлично.
Ждус…
Может заодно и закрытые блоги все-таки подключить получится?
Ждус…
Может заодно и закрытые блоги все-таки подключить получится?
0
Сделать-то не проблема, но для этого придется вводить логин\пароль в настройках скрипта… иначе никак. Просто раньше из-за капчи это было сделать несколько проблематично.
0
Такая же проблема =\
Раньше (в январе) работал, а сейчас перестал.
Может это из-за того, что хабр как то изменился за это время.
Раньше (в январе) работал, а сейчас перестал.
Может это из-за того, что хабр как то изменился за это время.
0
Добрался до скрипта) замените в файле fav2pdf.py строчку
на
сегодня закоммичу изменение на гитхабе
res = re.findall('class="blog">(.*)<\/a> &rarr\s*\D*\s+<a \D*href="(.*)"\D* class="topic">(.*)<\/a>', dr)
на
res = re.findall('class="blog">(.*)<\/a>\D*\s*→\s*\D*\s+<a \D*href="(.*)"\D* class="topic">(.*)<\/a>', dr)
сегодня закоммичу изменение на гитхабе
0
Если все еще актуально :) замените в файле fav2pdf.py строчку
на
сегодня закоммичу изменение на гитхабе
res = re.findall('class="blog">(.*)<\/a> &rarr\s*\D*\s+<a \D*href="(.*)"\D* class="topic">(.*)<\/a>', dr)
на
res = re.findall('class="blog">(.*)<\/a>\D*\s*→\s*\D*\s+<a \D*href="(.*)"\D* class="topic">(.*)<\/a>', dr)
сегодня закоммичу изменение на гитхабе
0
Processed page 14 of 14:
— 130 Topic: GTD->Перевод статьи «Work 2.0 – the interruptible programmer»
131 Topic: GTD->Программист, который отвлекается
132 Topic: Системное администрирование->Перехват и редактирование файлов http-трафика на примере торрента
133 Topic: iPhone->Jailbreak iPhone 3GS, iPod Touch 3G, iPad, iPhone 4, iPod Touch 4G. Geohot опять всех сделал…
— Prepare PDF…
No handlers could be found for logger «ho.pisa»
Traceback (most recent call last):
File «fav2pdf.py», line 109, in
go(content, user+'.pdf')
File "/home/xarakternuk/Завантаження/vrtx64-fav2pdf-9d1e6a7/pdf_gen.py", line 170, in go
pisa.CreatePDF(content, file(filename, 'wb'))
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_document.py", line 161, in pisaDocument
doc.build(c.story)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 877, in build
self.handle_flowable(flowables)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 776, in handle_flowable
if frame.add(S[0], canv, trySplit=0):
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/frames.py", line 174, in _add
flowable.drawOn(canv, self._x + self._leftExtraIndent, y, _sW=aW-w)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/flowables.py", line 106, in drawOn
self._drawOn(canvas)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/flowables.py", line 87, in _drawOn
self.draw()#this is the bit you overload
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_reportlab.py", line 564, in draw
Paragraph.draw(self)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 1054, in draw
self.drawPara(self.debug)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 1540, in drawPara
dpl( tx, _offsets[i], f, noJustifyLast and i==lim)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 337, in _leftDrawParaLineX
_putFragLine(offset, tx, line)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 217, in _putFragLine
tx._canvas.drawImage(cbDefn.image.getImage(),cur_x_s,cur_y+iy0,w,h,mask='auto')
File "/usr/lib/python2.6/dist-packages/reportlab/pdfgen/canvas.py", line 825, in drawImage
imgObj = pdfdoc.PDFImageXObject(name, image, mask=mask)
File "/usr/lib/python2.6/dist-packages/reportlab/pdfbase/pdfdoc.py", line 2072, in __init__
self.loadImageFromSRC(source) #it is already a PIL Image
File "/usr/lib/python2.6/dist-packages/reportlab/pdfbase/pdfdoc.py", line 2140, in loadImageFromSRC
raw = im.getRGBData()
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_reportlab.py", line 313, in getRGBData
self._dataA = PmlImageReader(im.split()[3])
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1497, in split
if self.im.bands == 1:
AttributeError: 'NoneType' object has no attribute 'bands'
— 130 Topic: GTD->Перевод статьи «Work 2.0 – the interruptible programmer»
131 Topic: GTD->Программист, который отвлекается
132 Topic: Системное администрирование->Перехват и редактирование файлов http-трафика на примере торрента
133 Topic: iPhone->Jailbreak iPhone 3GS, iPod Touch 3G, iPad, iPhone 4, iPod Touch 4G. Geohot опять всех сделал…
— Prepare PDF…
No handlers could be found for logger «ho.pisa»
Traceback (most recent call last):
File «fav2pdf.py», line 109, in
go(content, user+'.pdf')
File "/home/xarakternuk/Завантаження/vrtx64-fav2pdf-9d1e6a7/pdf_gen.py", line 170, in go
pisa.CreatePDF(content, file(filename, 'wb'))
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_document.py", line 161, in pisaDocument
doc.build(c.story)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 877, in build
self.handle_flowable(flowables)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/doctemplate.py", line 776, in handle_flowable
if frame.add(S[0], canv, trySplit=0):
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/frames.py", line 174, in _add
flowable.drawOn(canv, self._x + self._leftExtraIndent, y, _sW=aW-w)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/flowables.py", line 106, in drawOn
self._drawOn(canvas)
File "/usr/lib/python2.6/dist-packages/reportlab/platypus/flowables.py", line 87, in _drawOn
self.draw()#this is the bit you overload
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_reportlab.py", line 564, in draw
Paragraph.draw(self)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 1054, in draw
self.drawPara(self.debug)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 1540, in drawPara
dpl( tx, _offsets[i], f, noJustifyLast and i==lim)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 337, in _leftDrawParaLineX
_putFragLine(offset, tx, line)
File "/usr/lib/pymodules/python2.6/sx/pisa3/reportlab_paragraph.py", line 217, in _putFragLine
tx._canvas.drawImage(cbDefn.image.getImage(),cur_x_s,cur_y+iy0,w,h,mask='auto')
File "/usr/lib/python2.6/dist-packages/reportlab/pdfgen/canvas.py", line 825, in drawImage
imgObj = pdfdoc.PDFImageXObject(name, image, mask=mask)
File "/usr/lib/python2.6/dist-packages/reportlab/pdfbase/pdfdoc.py", line 2072, in __init__
self.loadImageFromSRC(source) #it is already a PIL Image
File "/usr/lib/python2.6/dist-packages/reportlab/pdfbase/pdfdoc.py", line 2140, in loadImageFromSRC
raw = im.getRGBData()
File "/usr/lib/pymodules/python2.6/sx/pisa3/pisa_reportlab.py", line 313, in getRGBData
self._dataA = PmlImageReader(im.split()[3])
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1497, in split
if self.im.bands == 1:
AttributeError: 'NoneType' object has no attribute 'bands'
0
Упс, не туда ответил :)
В ps к топику указано решение данной проблемы
В ps к топику указано решение данной проблемы
0
В пс же немного не та.
у меня как раз вот — habrahabr.ru/blogs/python/111411/#comment_3555013
у меня как раз вот — habrahabr.ru/blogs/python/111411/#comment_3555013
0
В ps к топику указано решение данной проблемы
0
я программист, я не хочу ничего патчить. я хочу минет питон
0
ERROR [ho.pisa] /usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_parser.py line 131: Tag handling
u'<br/>'
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_parser.py", line 119, in pisaGetAttributes
nv = c.getFile(nv)
File "/usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_context.py", line 938, in getFile
return getFile(name, relative or self.pathDirectory)
File "/usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_util.py", line 580, in getFile
file = pisaFileObject(*a, **kw)
File "/usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_util.py", line 508, in __init__
r1 = conn.getresponse()
File "/usr/lib/python2.7/httplib.py", line 1030, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 371, in _read_status
raise BadStatusLine(line)
BadStatusLine: ''
WARNING [ho.pisa] /usr/local/lib/python2.7/dist-packages/sx/pisa3/pisa_tags.py line 364: Need a valid file name!
u'<img src="http://dl.dropbox.com/u/1265062/misc/habr/rle_byte.png"/>'
0
Автор, будьте так любезны, переделайте скрипт под новую систему авторизации. Заранее спасибо.
0
Так тут авторизации не было никогда. Я скриптом, к сожалению, давно уже не занимался, однако на гитхабе есть разработчик, который дорабатывал мой скрипт под последние изменения. Попробуйте воспользоваться его скриптом github.com/JazzCore/fav2pdf
0
Немного доработал ваш скрипт.
gist.github.com/icoz/8360969
Изменения:
1) содается папка pdf с подпапками posts и hubs
2) при парсинге страницы выдираются и комментарии, потом они сохраняются в топике
3) в posts сохраняются посты по имени id.pdf
4) в hubs создаются подпапки с названиями хабов, которые упоминаются в топиках
5) в тех подпапках хабов создаются символические ссылки на posts/id.pdf
Спасибо за проделанную вами работу. Это сэкономило мне много времени.
gist.github.com/icoz/8360969
Изменения:
1) содается папка pdf с подпапками posts и hubs
2) при парсинге страницы выдираются и комментарии, потом они сохраняются в топике
3) в posts сохраняются посты по имени id.pdf
4) в hubs создаются подпапки с названиями хабов, которые упоминаются в топиках
5) в тех подпапках хабов создаются символические ссылки на posts/id.pdf
Спасибо за проделанную вами работу. Это сэкономило мне много времени.
+1
Круто! :) Спасибо за отзыв и спасибо за действительно полезные доработки! Рад, что скриптик пригодился, думал, что им уже никто не пользуется :)
0
На самом деле просто на коленке допилил, чтобы работало как мне надо.
А по-хорошему надо переписать на третьем питоне, сделать параметры командной строки (имя юзера, с какой по какую страницу, сохранять или нет комментарии), авторизацию…
Кстати, где бы узнать какой api у mHabr?
А по-хорошему надо переписать на третьем питоне, сделать параметры командной строки (имя юзера, с какой по какую страницу, сохранять или нет комментарии), авторизацию…
Кстати, где бы узнать какой api у mHabr?
0
Чуть посильнее переколбасил код.
Добавил работу с командной строкой, провел рефакторинг.
Для всех желающих: github.com/icoz/fav2pdf
vrtx вам на github'е направил pull-request
Вот опции, что теперь поддерживаются:
Добавил работу с командной строкой, провел рефакторинг.
Для всех желающих: github.com/icoz/fav2pdf
vrtx вам на github'е направил pull-request
Вот опции, что теперь поддерживаются:
usage: fav2pdf.py [-h] [-d OUTPUT_DIR] [--from-date FROM_DATE]
[--to-date TO_DATE] [--all-in-one]
[--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]] [--no-comments]
[--no-symlinks]
user
Tool for save favorite posts from habrahabr.ru in pdfs
positional arguments:
user habrahabr.ru username
optional arguments:
-h, --help show this help message and exit
-d OUTPUT_DIR, --output-dir OUTPUT_DIR
Directory for output
--from-date FROM_DATE
From date
--to-date TO_DATE To date
--all-in-one Save all posts in one PDF-file
--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]
Save only posts from hubs. For multiple: "--only-hubs
Hub1 Hub2 --"
--no-comments Dont save comments from posts
--no-symlinks Dont create symlinks to posts
+1
Sign up to leave a comment.
Избранное Хабра в PDF