LINUX.ORG.RU
ФорумTalks

Скрипт для выгрузки всех скриншотов linux.org.ru и описания. Локально.

 , , , ,


6

4

Написал на досуге скрипт на python3 для выгрузки локально всех скриншотов галлереи лора с 1999 года.
Решил просто замутить галлерею отдельную с историей таких скриншотов, вдохновился лором, и решил нарабатывать навыки написания кода на python (пишу 2 неделю на нем), до этого писал 6 лет на php.
Весь код открыт, находится на github:

https://github.com/foozzi/linux.org.ru-gallery

Буду рад помощи и вашим доработкам скрипта, вскоре запущу (если администрация разрешит), ресурс с галереей этих скриншотов онлайн.

UPD 07.03.17:
Собственно прислушался к техническим пожеланиям grazor и создал модуль почти полноценный, спасибо остальным за проявленный интерес.

★★★

Спасибо. Кстати, почему бы не генерировать время от времени архивы с скриншотами?

Возможно, сделаю это на базе gitlab.com + GitLab CI.

anonymous00 ★★ ()
Ответ на: комментарий от anonymous00

Это пока скажем бетка лоадера галлереи, буду дорабатывать с вашими пожеланиями.
Буду признателен, если это начнет расширятся за счет сообщества :)

foozzi ★★★ ()

Забавно, хоть и довольно специфично.

решил нарабатывать навыки написания кода на python

Если хочешь и дальше осваивать питон и развивать проект, советую сразу разобраться и создать пакет. Из основного пригодится:

  • файл setup.py с метаинформацией,
  • файл __main__.py для запуска,
  • библиотека argparse для аргументов командной строки,
  • библиотека logging для логгирования.

Для тестирования и отладки нужно будет выполнить python setup.py develop в виртуальное окружение. Для запуска — python -m lor_gallery.

from bs4 import BeautifulSoup
import re
import requests

Нормальный способ, но интереса ради, можешь посмотреть на Scrapy (лично мне нравится вытаскивать данные по xpath и генерировать задания через yield) и <hipster-mode>всякие асинхронные aiohttp</hipster-mode>.

grazor ()
Последнее исправление: grazor (всего исправлений: 2)
Ответ на: комментарий от grazor

Спасибо, действительно хороший комментарий, это все учту, завтра все запушу с изменениями для удобства использования скрипта и более «питоничной» наглядности! tnx man!)

foozzi ★★★ ()
Ответ на: комментарий от foozzi

Пробежался по коду, из того, что бросилось в глаза:

file = open(path + '/' + name + '.txt', 'w')

Тут используй with, как в случае выше.

path + '/' + name + '.txt'

base_path = os.path.abspath(os.path.dirname(__file__))
...
path = os.path.join(base_path, 'whatever', ..., '{}.txt'.format(name))
grazor ()

а какую cms использовать для ресурса собираешься?

dima1981 ()
Последнее исправление: dima1981 (всего исправлений: 1)

вскоре запущу (если администрация разрешит)

Администрация это, конечно, хорошо. Вот только пользовали выкладывали скрины угадай под какой лицензией? Правильно. Свяжись с каждым автором и узнай, не против ли он, что ты будешь их скрины у себя размещать.

shrub ★★★★★ ()

А скрины из описания будет выкачивать?

NoobeR ★★★ ()
Ответ на: комментарий от NoobeR

тогда и количество путных комментариев по ключевым словам определяемых пользователем из списка, тоже прикольно.

dima1981 ()
Ответ на: комментарий от grazor

Во во, коллега так ошибся на

/
, был не особо рад.

ggrn ★★★★★ ()
Ответ на: комментарий от grazor

В случае с третьим питоном можно pathlib воспользоваться. Так удобнее как по мне.

Kilte ★★★★★ ()

Вот они срипткидисы которые ддосят ЛОР!

Ygor ★★★★★ ()
Последнее исправление: Ygor (всего исправлений: 1)
Ответ на: комментарий от Ygor

Эта штука все последовательно качает, фиг что заддосит она :).

ei-grad ★★★★★ ()
Ответ на: комментарий от dima1981

Не думаю что потребуется cms, самопальный движок на flask, не более

foozzi ★★★ ()
Ответ на: комментарий от dima1981

Скрины из описания - да, буду, по повод комментов не очень понял. Все технические правки сделаю, согласно ваших комментариев

foozzi ★★★ ()
Ответ на: комментарий от foozzi

самопальный движок

надеюсь аякс джейквери и все такое там окажется, чтоб удобнее все вертеть масштабировать и тд тогда.

dima1981 ()
Ответ на: комментарий от foozzi

еще хорошо бы уметь подгружать все скрины из поста а не только описания по требованию если такие есть.

dima1981 ()
Ответ на: комментарий от dima1981

а я вот наоборот хотел без джсов, коль уж такое требуется, сделаю с ним.

foozzi ★★★ ()
Ответ на: комментарий от shrub

А если опубликовать на сайте галереи ссылки на каждый пост со скрином и указать об авторстве этого человека, якобы галереи онли в ознакомительных целях? То есть копирайты оставить скажем так.

foozzi ★★★ ()

Допилил немного код, сделал пакет, теперь через setup.py

foozzi ★★★ ()
Ответ на: комментарий от foozzi

а вообще тогда хорошо бы и остальные ресурсы подключить на которых есть такие разделы, чтоб со всего мира типа если такого еще нету, вот это вообще полный фарш получится имха если пиарнуть по уму.

dima1981 ()
Ответ на: комментарий от dima1981

да, круто будет, поищу еще ресурсы со скринами древними (и не только)

foozzi ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.