Комментарии 93
Я как раз уже несколько дней пытаюсь придумать, как бы реализовать удобный экспорт самых толковых howto на читалку, и тут такое. Спасибо, сейчас протестирую!
Спасибо за доработки, удобная штука получилась!
Прошу прощения за бестолковый вопрос, но работает ли эта штука под Windows?
Не знаю. Не проверял.
:)
Работает.
Качаем скрипт, ставим необходимые библиотеки. Для версии python 2.7 помимо тех, которые указаны в статье, потребовалось поставить еще библиотеки six, lxml.
Качаем скрипт, ставим необходимые библиотеки. Для версии python 2.7 помимо тех, которые указаны в статье, потребовалось поставить еще библиотеки six, lxml.
Кстати, раз уж утилитка консольная и на питоне — попробуйте вот такую вот либу:
docopt.org/
github.com/docopt/docopt
docopt.org/
github.com/docopt/docopt
А чем вам argparse не нравится?
Я же не сам аргументы разбираю, а argparse использую. В чем преимущество docopt?
Я же не сам аргументы разбираю, а argparse использую. В чем преимущество docopt?
Почитал доку. Неее… Там надо самому весь usage расписать, а docopt на базе этого сам разберет параметры.
Я программист — много писать мне лень. Я лучше 10 строк для argparse напишу… Плюс к тому, проще задать ограничения на вводимые значения.
Я программист — много писать мне лень. Я лучше 10 строк для argparse напишу… Плюс к тому, проще задать ограничения на вводимые значения.
Блин, то ли я плохо объясняю, то ли вы не ту доку читаете…
Usage всегда будет короче, чем код argpasre, который его стоит.
Вот в этом месте видео автор либы сравнивает код консольного чекера pep8 с argparse и с docopt:
www.youtube.com/watch?v=pXhcPJK5cMc#t=418
Если и после этого не убедил, то видимо у нас разные вкусы.
Usage всегда будет короче, чем код argpasre, который его стоит.
Вот в этом месте видео автор либы сравнивает код консольного чекера pep8 с argparse и с docopt:
www.youtube.com/watch?v=pXhcPJK5cMc#t=418
Если и после этого не убедил, то видимо у нас разные вкусы.
Посмотрел пунктиром.
Да, библиотечка стоящая. Но каждой библиотеке свои задачи.
В примере разбирали очень крутую конфигурацию опций. Да, в этом случае docopt полезнее.
Но не забывайте, что для изучения чего-то нового необходимо время.
Когда случай сложный, то быстрее будет изучить docopt и использовать его, а иначе зачем заморачиваться?
А вот в чем вы меня действительно не убедили, так это в том, зачем переделывать утилиту на использование новой библиотеки?
PS. видюшка интересная, закинул ее себе в посмотреть попозже.
Да, библиотечка стоящая. Но каждой библиотеке свои задачи.
В примере разбирали очень крутую конфигурацию опций. Да, в этом случае docopt полезнее.
Но не забывайте, что для изучения чего-то нового необходимо время.
Когда случай сложный, то быстрее будет изучить docopt и использовать его, а иначе зачем заморачиваться?
А вот в чем вы меня действительно не убедили, так это в том, зачем переделывать утилиту на использование новой библиотеки?
PS. видюшка интересная, закинул ее себе в посмотреть попозже.
Я однажды делал экспорт избранного в FB2. Правда, потом на сайте что-то сделали с разметкой, и он перестал работать. Но желающие могут форкнуть и допилить.
Работает, спасибо!
Правда несколько модулей пришлось поставить.
Правда несколько модулей пришлось поставить.
Не понял, что я такого сказал? Если про модули, то кроме тех, что упомянуты.
Мне пришлось кроме указанных установить лишь lxml. Кстати, надо бы в readme добавить список зависимостей.
2.7?
lxml точно ставил, и ещё что-то… забыл уже :)
lxml точно ставил, и ещё что-то… забыл уже :)
Список неточен только из-за того, что у каждого на системе уже что-то может стоять.
Да и если составлять такой список, то надо отследить все зависимости всех используемых библиотек.
Скучно и бессмысленно.
Ну и с другой стороны, никто не говорил, что у утилиты отсутствует порог вхождения.
Да и если составлять такой список, то надо отследить все зависимости всех используемых библиотек.
Скучно и бессмысленно.
Ну и с другой стороны, никто не говорил, что у утилиты отсутствует порог вхождения.
НЛО прилетело и опубликовало эту надпись здесь
По первому пункту:
На каждой странице по 10 постов, у вас 246 постов, логично, что скрипт пытается дернуть 25 страниц.
Внимание, вопрос: а как так 17 страниц получается?
По второму:
Запустите еще раз. Бывает что какие-то таймауты выходят и скрипт не получает данных.
Вот если проблема повторяется раз за разом именно на этих постах, то тогда есть повод подумать…
На каждой странице по 10 постов, у вас 246 постов, логично, что скрипт пытается дернуть 25 страниц.
Внимание, вопрос: а как так 17 страниц получается?
По второму:
Запустите еще раз. Бывает что какие-то таймауты выходят и скрипт не получает данных.
Вот если проблема повторяется раз за разом именно на этих постах, то тогда есть повод подумать…
Проверил, по второму пункту у меня те же посты нулевыми получились.
Буду думать что не так…
Буду думать что не так…
На счет постов, видно у хабра с этим проблема, вы можете сами посмотреть у меня всего 17 страниц в избранном. Скрипт сохраняет 170 файлов.
По поводу нулевых файлов, я запускал несколько раз. Ошибки там разные, вам лучше самому посмотреть, я python-е ничего не понимаю.
По поводу нулевых файлов, я запускал несколько раз. Ошибки там разные, вам лучше самому посмотреть, я python-е ничего не понимаю.
НАсколько сложно будет сделать .mobi => kindle?
У амазона есть плагин для киндла. Отлично все делает. Другое дело, что его надо использовать самому на каждой странице. chrome.google.com/webstore/detail/cgdjpilhipecahhcilnafpblkieebhea
Можно ли как-то переделать скрипт для Python 3.3? Может кто подскажет?
Думал над этим.
Даже попробовал. Но у меня всё валится на необходимости порта на python3 пакета reportlab.
Нашел на stackoverflow, говорят есть порт.
Но это экспериментальное всё и не мейнстрим, то есть ее нет даже в PyPI, только для python2.
К чему это я…
Ах да! Даже если с такими костылями и сделать порт, то поставить его смогут немногие.
Либо переписывать скрипт с использованием других библиотек.
Даже попробовал. Но у меня всё валится на необходимости порта на python3 пакета reportlab.
Нашел на stackoverflow, говорят есть порт.
Но это экспериментальное всё и не мейнстрим, то есть ее нет даже в PyPI, только для python2.
К чему это я…
Ах да! Даже если с такими костылями и сделать порт, то поставить его смогут немногие.
Либо переписывать скрипт с использованием других библиотек.
А можно сделать опцию на выгрузку одной конкретной статьи? Или списка статей из файла, а не из избранного?
Ну вот как раз одну статью удобнее экспортировать средствами браузера, как выше сказали.
Да, можно.
Можно добавить новый параметр
Можно и из списка…
Актуально ещё?
Можно добавить новый параметр
--get-one
.Можно и из списка…
Актуально ещё?
Не так давно тоже писал свой велосипед, но для Kindle. Скрипт умеет:
1. Вытягивать лучшие статейки по хабам. (используя бд из моего предыдущего поста)
2. Парсить избранное
3. Просто стянуть рандомную статью.
Для корректной работы, нужно скачать kindlen и указать у нему путь в habr_to_kindle.py.
1. Вытягивать лучшие статейки по хабам. (используя бд из моего предыдущего поста)
2. Парсить избранное
3. Просто стянуть рандомную статью.
Для корректной работы, нужно скачать kindlen и указать у нему путь в habr_to_kindle.py.
В итоге
комментарии
комментарии
Спасибо за скрипт!
Все предыдущие варианты что я пробовал быстро загибались под натиском моего избранного, а Ваш уже 9/99 страниц обработал. Пока держится молодцом! =)
Все предыдущие варианты что я пробовал быстро загибались под натиском моего избранного, а Ваш уже 9/99 страниц обработал. Пока держится молодцом! =)
Увы, на 137 статье завис скрипт. habrahabr.ru/post/162747/ — на этом топике.
После 10 минут тупняка опять пошло — уже 42 страницу парсит.
О_о
Вы меня поражаете.
Надеюсь хоть по разным файлам?
И тогда уж в формате html…
Вы меня поражаете.
Надеюсь хоть по разным файлам?
И тогда уж в формате html…
Из параметров я указал только свой ник — так что по разным файлам и в pdf =)
html на айпаде не очень удобно читать, так что закину pdf-ки в iBooks. Жаль только, что метаданные не заполняются у pdf:
Реквестирую вставку в метаданные ника автора, заголовка статьи и тегов (в поле «Тема»).
html на айпаде не очень удобно читать, так что закину pdf-ки в iBooks. Жаль только, что метаданные не заполняются у pdf:
Реквестирую вставку в метаданные ника автора, заголовка статьи и тегов (в поле «Тема»).
stackoverflow.com/questions/2574676/change-metadata-of-pdf-file-with-pypdf
Вот, можно так сделать добавление метаданных. Иначе при импорте всех 900 файлов в ibooks будут проблемы — как выбрать нужную статью.
Вот, можно так сделать добавление метаданных. Иначе при импорте всех 900 файлов в ibooks будут проблемы — как выбрать нужную статью.
Фух, распарсил 900+ статей. Всё таки справился, спасибо автору! Первый парсер, который сделал свою работу.
И всего лишь один нулевой файл на выходе.
И всего лишь один нулевой файл на выходе.
Добавил эту статью в избранное, и забыл про неё. Всё правильно сделал?
Честно говоря, для GUI я бы добавил побольше.
Да и вообще сделал бы в виде Мастера.
Шаг 1. ввести ник, нажать далее.
Шаг 2. собрать инфу с его избранного и вывести в древовидной(хабы и посты) форме или списком все статьи. Ввести фильтры: по времени, по хабу, по автору.
Шаг 3. поотмечать галочками что сохранить, а что нет. Нужны комментарии или нет.
Шаг 4. вытянуть и сохранить. Формат на выбор: html, pdf, может конвертация в какой-нибудь fb2.
Может и сам когда-нибудь этим займусь, когда время будет. Или вы попробуйте, если время есть.
Да и вообще сделал бы в виде Мастера.
Шаг 1. ввести ник, нажать далее.
Шаг 2. собрать инфу с его избранного и вывести в древовидной(хабы и посты) форме или списком все статьи. Ввести фильтры: по времени, по хабу, по автору.
Шаг 3. поотмечать галочками что сохранить, а что нет. Нужны комментарии или нет.
Шаг 4. вытянуть и сохранить. Формат на выбор: html, pdf, может конвертация в какой-нибудь fb2.
Может и сам когда-нибудь этим займусь, когда время будет. Или вы попробуйте, если время есть.
Спасибо! А вы не могли-бы скомпилировать и под Windows для тех, кому это сделать трудновато по причине незнания, даже в теории, как это делать? :) Буду крайне благодарен!
Дык такое я и не начинал еще. Идей проектов много, а времени крайне мало. :(
Можно пример даты для скрипта?
С reportlab версии 3.0 не работает, выдает ошибку. Пришлось специально ставить 2.7
Насколько я понял после обновления дизайна — не работает?
У меня скрипт теперь проходит по всем статьям и говорит что они — «is locked».
У меня скрипт теперь проходит по всем статьям и говорит что они — «is locked».
Аналогично :( Большая просьба к автору, поправьте, если есть такая возможность.
Я смотрел, не так все просто.
У меня сейчас в разработке новый парсер страниц. Своеобразный фреймворк для парсинга хабра. Пока сырой и не все еще реализовано. Поэтому пока класть в опенсурс стыдно.
Если есть желающие попилить — прошу в личку.
У меня сейчас в разработке новый парсер страниц. Своеобразный фреймворк для парсинга хабра. Пока сырой и не все еще реализовано. Поэтому пока класть в опенсурс стыдно.
Если есть желающие попилить — прошу в личку.
Отмечу, что я в описанной программе взял чужой парсер и сделал к нему консольную обертку.
А сейчас пишу свой парсер.
А сейчас пишу свой парсер.
В таком случае, будем ждать с нетерпением :)
Парсер написан. Баги есть, но по ходу дела вылавливаются.
Но я столкнулся с другой проблемой — чем сохранять в третьем питоне в pdf?
Гугл сходу не помог… :(
Могу просто html сохранять — пойдет?
Но я столкнулся с другой проблемой — чем сохранять в третьем питоне в pdf?
Гугл сходу не помог… :(
Могу просто html сохранять — пойдет?
Это просто отличные новости! Жаль, у меня не хватает кармы для голосования :(
Меня бы устроило и в HTML. Но вот что выдал мне гугл, stackoverflow.com/questions/12021216/is-there-any-python-3-module-to-create-pdf-files вдруг вам это поможет, хотя я слегка далек от программирования вообще, и от Питона в частности (
Меня бы устроило и в HTML. Но вот что выдал мне гугл, stackoverflow.com/questions/12021216/is-there-any-python-3-module-to-create-pdf-files вдруг вам это поможет, хотя я слегка далек от программирования вообще, и от Питона в частности (
html можно сохранить в pdf используя pyQt:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *
app = QApplication(sys.argv)
web = QWebView()
web.load(QUrl("http://habrahabr.ru/post/208802"))
#web.show() можно показать страницу
printer = QPrinter()
printer.setPageSize(QPrinter.A4)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName("file.pdf")
def convertIt():
web.print_(printer)
print("Pdf generated")
QApplication.exit()
QObject.connect(web, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
Отсюда. Не знаю, поможет вам или нет.
НЛО прилетело и опубликовало эту надпись здесь
Да. Я взял чужой парсер и сделал к нему обертку. Ну и доработал маленько кое-где.
Сейчас я написал всё свое с нуля и на третьем питоне. Осталось немного.
Сейчас я написал всё свое с нуля и на третьем питоне. Осталось немного.
Ждем-ждем :)
Есть какие-нибудь новости по новому парсеру?
Приветствую всех.
Я опубликовал исходники парсера для Хабра.
github.com/icoz/habrapasre
Парсер работает вполне сносно.
Проблемы:
1) сохранение в pdf (то формат страницы такой, что часть текста обрезана, то картинок нет)
2) сохранение в html требует глубокого анализа текста, чтобы подменять ссылки на картинки, например…
Буду рад любой помощи.
Я опубликовал исходники парсера для Хабра.
github.com/icoz/habrapasre
Парсер работает вполне сносно.
Проблемы:
1) сохранение в pdf (то формат страницы такой, что часть текста обрезана, то картинок нет)
2) сохранение в html требует глубокого анализа текста, чтобы подменять ссылки на картинки, например…
Буду рад любой помощи.
Проведен ряд доработок. Скрипт работоспособен. Ограничена функциональность в части работы с комментариями.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Экспорт Избранного на Хабре в PDF