Приветствую!
наткнулся на сайтец, где англоязычная фантастика в хорошем ассортименте есть, нос качивать вручную, по одной книге - зело неудобно и долго.
пробовал wget-ом, пробовал httrack-ом - сами книжки нифига не выцепляются, а хотелось бы...
может кто чего подскажет?
путь для тренировок -
https://www.rulit.me/author/heinlein-robert-anson
преферрабл формат - епуб.
пробовал и
wget -mkEpnp –no-check-certificate -r -A .epub https://www.rulit.me/author/heinlein-robert-anson
на выходе вообще пустой фолдер с названием сайта :(
хер его знает, чукча не писатель, чукча всё больше - читатель :)
на соотв странице есть кнопка на скачивание ( при наводке курсора на неё показывается путь ), после этого - линки на сквчку разных вформатов - обратно, при наведении путь показывается, и находится в пределах домена.
но при скачивании сайта всего этого нема, только хтмл-ы и прочее...
к сожалению владельцы подобных ресурсов, похоже, пытаются препятсвовать их оптовому скачиванию...:(
Курлом это достаточно просто делается:
curl -O -J -L -k "https://www.rulit.me/download-books-[00000-99999].html?t=epub" например.
Возможно еще опцией на размер отсортировать книжки от мусора, с названиями косячит (имя должно браться из заголовка Content-Disposition, но не берется ), а так - работает.
#!/bin/bash
for (( i=1; i<=100; i++ ))
do
url="https://www.rulit.me/download-books-$i.html?t=epub"
filename=$(curl -sI $url | grep Location | awk -F '/' '{print $NF}')
if [ -z "$filename" ]||[ "$filename" = "www.rulit.me" ]
then
continue
fi
curl -J -L -k -o $i.$filename -L $url
done
Только проверка на пустой файл срабатывает, а [ "$filename" = "www.rulit.me" ] - нет.
Качает в итоге все не пустое, в начале названия дописывается id книги. В примере диапазон от 1 до 100.
моё почтение!
только вот оно всего 99 штук скачивает ( а на сайте, вестимо, сильно побольше),
и после расширения точку ставит - файлнейм получается типа
91.singl-i-singl_RuLit_Net_91.epub?
92.russkij-dom_RuLit_Net_92.epub?
93.portnoj-iz-panamy_RuLit_Net_93.epub?
95.malenkaya-barabanshchica_RuLit_Net_95.epub?
96.komanda-smajli_RuLit_Net_96.epub?
97.vojna-v-zazerkale_RuLit_Net_97.epub?
98.vernyj-sadovnik_RuLit_Net_98.epub?
99.slovo-osvobozhdeniya_RuLit_Net_99.epub?
dload_books_curl.src
PS странно - в шелле после расширения видно знак вопроса, а миднайт коммандере - точку.
и скачивает не 99, а таки 100.
да, за 10 секунд до прочтения сего сам понял, глянув на скрипт, сэнкс. но вот почему после расширения какой то символ, и почму он лс-ом как знак вопроса, а в мц как точка кажет?
после последнего изменения - уже и три раза - посередине тоже.
и совпадают, да...
bash-3.2$ ls -1
2.Zorin_Ivan__Vozvrashennye_metafiziki_chizneopisaniya_esse_stihotvoreniya_v_proze_RuLit_Net_2.epub
22.literaturnyj-zhurnal-quot-klyap-quot_22_RuLit_Net_22.epub
23.rossiya-nakanune-vtorogo-prishestviya-tajna-11-j-zapovedi_23_RuLit_Net_23.epub
24.zanimatelnaya-istoriya_24_RuLit_Net_24.epub
26.neizvestnyj-yulian-semenov_26_RuLit_Net_26.epub
27.vozvrashchyonnye-metafiziki-zhizneopisaniya-esse-stihotvoren_27_RuLit_Net_27.epub
28.podchinennaya-funkciya_28_RuLit_Net_28.epub
29.koshka-skazka-ob-osvobozhdenii-femininnosti_29_RuLit_Net_29.epub
3.Eschenbach_Wolfram__Parzival_3_RuLit_Net_3.epub
30.izbavlenie-ot-koldovstva-v-volshebnyh-skazkah_30_RuLit_Net_30.epub
31.alhimiya_31_RuLit_Net_31.epub
34.istoriya-vtoroj-mirovoj-vojny_34_RuLit_Net_34.epub
36.alyans-i-razryv-so-stalinym_36_RuLit_Net_36.epub
39.sud-morya_39_RuLit_Net_39.epub
4.Shamisso_Adelbert__Udivitelnaya_istoriya_Petera_Shlemilya_4_RuLit_Net_4.epub
40.preddverie-neba_40_RuLit_Net_40.epub
41.plat-svyatoj-veroniki_41_RuLit_Net_41.epub
5.Haiek_Fridrih__Chastnye_dengi_5_RuLit_Net_5.epub
6.fon_Haiek_Fridrih__Pagubnaya_samonadeyannost_6_RuLit_Net_6.epub
7.Franc_Mariya-Luiza__Lekcii_po_ungovskoi_tipologii_Podchinennaya_funkciya._Chuvstvuushaya_funkciya_7_RuLit_Net_7.epub
dload_books_curl.src
что значит - нормальная?
порядковый номер в начале файлнейма есть ок.
но удлинение и так частенько длинного файлнейма за счёт повторяющегося номера както не айс, по моему, нет?
ЗЫ а почему теперь не с еденицы всё начинается?
bash-3.2$ ls -1
0002.Zorin_Ivan__Vozvrashennye_metafiziki_chizneopisaniya_esse_stihotvoreniya_v_proze_RuLit_Net_2.epub
0003.Eschenbach_Wolfram__Parzival_3_RuLit_Net_3.epub
0004.Shamisso_Adelbert__Udivitelnaya_istoriya_Petera_Shlemilya_4_RuLit_Net_4.epub
0005.Haiek_Fridrih__Chastnye_dengi_5_RuLit_Net_5.epub
0006.fon_Haiek_Fridrih__Pagubnaya_samonadeyannost_6_RuLit_Net_6.epub
0007.Franc_Mariya-Luiza__Lekcii_po_ungovskoi_tipologii_Podchinennaya_funkciya._Chuvstvuushaya_funkciya_7_RuLit_Net_7.epub
0022.literaturnyj-zhurnal-quot-klyap-quot_22_RuLit_Net_22.epub
0023.rossiya-nakanune-vtorogo-prishestviya-tajna-11-j-zapovedi_23_RuLit_Net_23.epub
dload_books_curl.src
bash-3.2$
вообще странно, да, но в целом - вешь, с которой можно работать.
спасибо всем причастным, завтра поставлю выкачатся сию библиотеку, указав в цикле сто тысячь ( думаю, должно хватить, дабы всё выкачать?), а дальше уже можно будет при нужде както файлнеймы подкорректировать регекспом или ещё как, полагаю...
Еще лучше будет если урлы для поиска отвязать от автора
https://www.rulit.me/books/all/$i/date для курла и https://www.rulit.me/books/[^.]+.html для грепа
в смысле, чем лучще?
автор, да ещё, пожалуй, жанр - одни из основных критерий группировки же, ведь, если меня интересует НФ -зачем мне религия там, или эзотерика с астрологиями какая? :-O