Комментарии 53
Давайте прикрутим еще доставку на почту. А дальше sqlite + cron, и будет персональный сервис доставки хабра.
библиотека для работы с информацией на сайтах Habrahabr.ru, GeekTimes.ru, MegaMozg.ru, позволяющая:
- получить информацию о профиле пользователя по его имени;
- получить из профиля пользователя: статьи, которые он написал и которые он добавил в свое «Избранное»;
- получить статью по номеру ID с её разбором.
Название для библиотеки было выбрано крайне оригинальное — habr.
+ еще одна библиотека, с не менее оригинальным названием "habrahabr".
Посмотрел. Весьма интересная библиотека. Однако она требует знания ключей доступа к API Хабра.
Не совсем, достаточно только client_id и token. Их очень легко получить в т.ч. из официального приложения Хабрахабра, если немного подумать (дам подсказку, декомпилировать приложение не нужно, там все гораздо проще).
Догадываюсь. Только это не этично.
И неужто нет https?
И неужто нет https?
HTTPS есть, но вроде без SSL pinning. Так что можно попробовать подсунуть свой сертификат и устроить MitM. Но это все сложно, есть способ гораздо проще.
Только что проверил на стоковом Android'е, Client ID извлекается 1 касанием экрана, если знать, куда тыкать. Токен получить чуть сложнее, но если вы хотя бы поверхностно знаете OAuth, то проблем с этим не возникнет.
Только что проверил на стоковом Android'е, Client ID извлекается 1 касанием экрана, если знать, куда тыкать. Токен получить чуть сложнее, но если вы хотя бы поверхностно знаете OAuth, то проблем с этим не возникнет.
НЛО прилетело и опубликовало эту надпись здесь
Вопрос не понял. Но думаю, что правильный ответ: я не знаю java и не разрабатываю под браузеры. А также это ограничение для пользователя — каким браузером он _должен_ пользоваться.
НЛО прилетело и опубликовало эту надпись здесь
включая ie, к слову.
То есть вы явно лучше автора разбираетесь в теме расширений для браузера, но тем не менее предлагаете ему их сделать? :) А чего сами тогда не запилите? Он же сказал уже, что не умеет.
Юзерскрипт же. И несложно, и кроссбраузерность.
А для тех кто не работает в командной строке… Вот у меня Windows. Как мне собрать запрос, чтобы сохранились статьи из избранного, по имени, в pdf, с комментариями? Заранее спасибо!
python3 habraparse save_favs -cn sergus output_dir
Но в целом, по результатам опроса, я понял, что надо делать GUI.
Но в целом, по результатам опроса, я понял, что надо делать GUI.
очень надо. так как штука нужная. а в строке далеко не все работают.
ещё один маааленький вопросик. где взять эту библиотеку habr и как её установить в мой python? я новичок в питоне.
Никак. Она идет внутри habraparse
Коль просили говорить про ошибки. К Вашему скрипту конечно не относится, но всё же. Попытка установить weasyprint…
«error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).»
Кучу раз устанавливал уже C++ с разных источников, ничего не помогает.
У меня Windows 8.1 и python 3.4
«error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).»
Кучу раз устанавливал уже C++ с разных источников, ничего не помогает.
У меня Windows 8.1 и python 3.4
Просто получается скрипт только «для своих». В массы в таком виде он не пойдёт. Надеюсь, когда-нибудь выйдет конечный продукт, для которого не нужен бубен.
А так хотелось свои избранные сохранить…
А так хотелось свои избранные сохранить…
Ну о чем вы, скрипт вполне закончен… я виндузятник до мозгокостей, однако разобрался как в убунте поставить Python3 и нужные библиотеки, было-бы желание. Скрипт работает, свои задачи выполняет.
я не хочу ставить убунту, чтобы запустить простой скрипт. я не спорю, автор молодец и скрипт хороший, наверное. но я его так и не смог запустить на windows…
Хм. Я-то думал, что вы под Windows проверяли… :(
да у меня и под linux (чистый):
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
— Cleaning up…
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
— Cleaning up…
Есть настроенный образ докер:
icoz/habraparse
Можно попробовать несколько вариантов для решения проблемы работы Python на Windows.
1. Попробовать найти и установить все нужные бинарники отсюда.
2. Попробовать все же скомпилировать под Windows нужные библиотеки. У меня стоит Visual Studio 2010 (подозреваю что на самом деле достаточно рекомендуемого выше фикса). Так же у меня был следующий ньюас в компиляции — был еще настроен компилятор MinGW, вот его пришлось убрать из переменных среды, тогда все заработало.
3. Использовать Anaconda Scientific Python Distribution с его пакетным менеджером conda.
Третий подход мне очень сильно облегчает жизнь и экономит кучу времени.
P.S. icoz — cпасибо за интересные библиотеки написанные на Python.
1. Попробовать найти и установить все нужные бинарники отсюда.
2. Попробовать все же скомпилировать под Windows нужные библиотеки. У меня стоит Visual Studio 2010 (подозреваю что на самом деле достаточно рекомендуемого выше фикса). Так же у меня был следующий ньюас в компиляции — был еще настроен компилятор MinGW, вот его пришлось убрать из переменных среды, тогда все заработало.
3. Использовать Anaconda Scientific Python Distribution с его пакетным менеджером conda.
Третий подход мне очень сильно облегчает жизнь и экономит кучу времени.
P.S. icoz — cпасибо за интересные библиотеки написанные на Python.
Installing weasyprint
…
By platform
Pango, GdkPixbuf, and cairo can not be installed with pip and need to be installed from your platform’s packages. lxml and CFFI can, but you’d still need their own dependencies. This section lists system packages for lxml or CFFI when available, the dependencies otherwise. lxml needs libxml2 and libxslt, CFFI needs libffi.
…
Windows
- Get CPython 2.7 from python.org,
- Christoph Gohlke’s unofficial binaries for CFFI and lxml,
- and Alexander Shaduri’s GTK+ installer. Make sure that Set up PATH environment variable checked.
Установите Python 3.4.
Установите lxml‑3.4.2‑cp34‑none‑win32.whl или lxml‑3.4.2‑cp34‑none‑win_amd64.whl.
Установите cffi‑0.8.6‑cp34‑none‑win32.whl или cffi‑0.8.6‑cp34‑none‑win_amd64.whl.
Установите GTK+ for Windows Runtime Environment.
Пути к установленным библиотекам пропишите в PATH.
А потом уже pip install xxx.
Интересно, хабр устойчив к хабраэффекту?
Некоторое время назад я хотел запилить простенький сервис который не просто генерит pdf, а доставляет их в dropbox/evernote через их api + обновляет старые посты, если в них были обновления. Я уже не помню по каким причинам, но завершить начатое не получилось, поэтому предлагаю сообществу сделать то что я не смог.
Если будет нужно, то сделаю ключи для api хабра.
Если будет нужно, то сделаю ключи для api хабра.
Может кому так же будет полезна маленькая тулза, для доставки списка избранного для отложенного чтения на Kindle. Репозиторий на GitHub. Сам Kindle не обязателен.
python ./habraparse-master/habraparse.py save_favs -n --limit=10 vinchi /root/habrvinchi
Traceback (most recent call last):
File "./habraparse-master/habraparse.py", line 252, in main()
File "./habraparse-master/habraparse.py", line 223, in main
limit=args['--limit'], project=project)
File "./habraparse-master/habraparse.py", line 122, in save_all_favs_for_user
hu = HabraUser(username)
File "/root/habraparse-master/habr/user.py", line 220, in __init__
super().__init__(username, need_favorites, need_user_posts=need_user_posts, domain='habrahabr.ru')
TypeError: super() takes at least 1 argument (0 given)
Что не так делаю?
Traceback (most recent call last):
File "./habraparse-master/habraparse.py", line 252, in main()
File "./habraparse-master/habraparse.py", line 223, in main
limit=args['--limit'], project=project)
File "./habraparse-master/habraparse.py", line 122, in save_all_favs_for_user
hu = HabraUser(username)
File "/root/habraparse-master/habr/user.py", line 220, in __init__
super().__init__(username, need_favorites, need_user_posts=need_user_posts, domain='habrahabr.ru')
TypeError: super() takes at least 1 argument (0 given)
Что не так делаю?
В общем, так и не смог я запустить ваш скрипт… И переустанавливал, и устанавливал, и на виндовс, и на линукс… жду GUI, или скрипт, построенный на нормальных библиотеках.
Дайте нормальную библиотеку — сделаю…
Кстати, а GUI так же не запустится с ними? *.exe-шник бы, чтобы там всё собрано было.
Ну с ехе-шником вы загнули… Это не на питоне писать надо. А значит, нужен заново писать парсер на си.
а смысл тогда в GUI, если он так же просто не будет работать. а экзэшник это образно. нужно что-то, что автоматически устанавливает и настраивает эти несчастные библиотеки…
Нет смысла в таком GUI, конечно, если это промышленный продукт!
Но и вы не путайте.
Одно дело сделать утилиту для себя, которая выполняет свою задачу здесь и сейчас, чуть-чуть её украсить и поделиться ею с общественностью.
А совсем другое — целенаправленно разрабатывать эргономичный продукт, который легко устанавливается, работает на всем разнообразии операционных систем и железа.
Но и вы не путайте.
Одно дело сделать утилиту для себя, которая выполняет свою задачу здесь и сейчас, чуть-чуть её украсить и поделиться ею с общественностью.
А совсем другое — целенаправленно разрабатывать эргономичный продукт, который легко устанавливается, работает на всем разнообразии операционных систем и железа.
что же делать тогда… кстати, Хабр мог бы такую функцию встроить в сайт. Она имела бы успех. ВКонтакте, например, сделали скачивание фотографий со страницы альбомами. Думаю на каждом сайте, содержащим нужную информацию, должна быть возможность эту самую информацию получить в виде файлов или архива.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Экспорт Избранного на Хабре в PDF. Версия 2.0