Наверняка некоторые хабралюди читают книги на сайте http://lib.aldebaran.ru. Они знают о том, что с некоторых пор текст на сайте «защищён» от копирования. Конечно, большая часть книг осталась доступна для скачивания в удобных для чтения форматах, но многие популярные книги можно только читать он-лайн. Что неудобно.
Следующий несложный скрипт на Питоне скачает книгу целиком, попутно вырезав весь мусор напиханый туда для затруднения копирования.
Скрипт принимает параметром командной строки ссылку на любую страницу книги и выводит её текст на стандартный вывод.
Пользоватся им очень просто:
python lit.py lib.aldebaran.ru/author/sadov_sergei/sadov_sergei_klinki_u_trona/sadov_sergei_klinki_u_trona__0.html > lit.html
P.S. Пожалуйста, оставим вопрос о этике в стороне. Лично я оплачиваю полюбившиеся книги непосредственно автору.
UPD
Не я один такой умный. В комментариях подсказали
eBookDownloader — целое приложение которое поддерживает библиотеки фикшнбук, альдебара, литпортал (требует .NET)
А так же небольшой плагин для FireFox хабраюзера DirectXDirectX
Следующий несложный скрипт на Питоне скачает книгу целиком, попутно вырезав весь мусор напиханый туда для затруднения копирования.
import urllib, re, sys p_key = re.compile('http:\/\/lib\.aldebaran\.ru\/getpage\/1\/.*?"') p_span = re.compile('<span class=h>(.*?)<\/span>') p_s = re.compile('\';s \+= \'') p_p = re.compile('(<p>.*?<\/p>)') p_url_name = re.compile('^(http:\/\/lib.aldebaran.ru\/author\/.*?__)') def getpage(url): try: key = p_key.findall(urllib.urlopen(url).read())[0][-33:-1] except: return None urllib.urlopen("http://lib.aldebaran.ru/getpage/1/" + key) .read() page = urllib.urlopen("http://lib.aldebaran.ru/getpage/2/" + key) .read() page = p_span.sub('', page) page = ''.join(p_p.findall(page)) page = p_s.sub('', page) return page url = sys.argv[1] url = p_url_name.findall(url)[0] i = 1 while True: page = getpage(url + str(i) + '.html') i += 1 if page != None: print page else: sys.exit(0)
Скрипт принимает параметром командной строки ссылку на любую страницу книги и выводит её текст на стандартный вывод.
Пользоватся им очень просто:
python lit.py lib.aldebaran.ru/author/sadov_sergei/sadov_sergei_klinki_u_trona/sadov_sergei_klinki_u_trona__0.html > lit.html
P.S. Пожалуйста, оставим вопрос о этике в стороне. Лично я оплачиваю полюбившиеся книги непосредственно автору.
UPD
Не я один такой умный. В комментариях подсказали
eBookDownloader — целое приложение которое поддерживает библиотеки фикшнбук, альдебара, литпортал (требует .NET)
А так же небольшой плагин для FireFox хабраюзера DirectXDirectX