-
Notifications
You must be signed in to change notification settings - Fork 0
/
GetFreeSpringerEBooks.sh
123 lines (115 loc) · 9.69 KB
/
GetFreeSpringerEBooks.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
echo "Bash script to download FREE Springer EBooks during COVID-19!";
echo "Downloaded EBooks will be stored in ./DownloadedEBooks";
# Specify the ISBN's for free Springer ebooks
freeEBookISBNs=(
"978-0-306-48048-5" "978-0-306-48247-2" "978-0-387-21736-9" "978-0-387-22592-0" "978-0-387-21777-2"
"978-0-387-28117-9" "978-0-387-24158-6" "978-0-387-32353-4" "978-0-387-36218-2" "978-0-387-36274-8"
"978-0-387-36601-2" "978-0-387-37575-5" "978-0-387-40065-5" "978-0-387-45524-2" "978-0-387-46271-4"
"978-0-387-46312-4" "978-0-387-49312-1" "978-0-387-68566-3" "978-0-387-72071-5" "978-0-387-72579-6"
"978-0-387-74365-3" "978-0-387-75959-3" "978-0-387-76501-3" "978-0-387-77650-7" "978-0-387-78341-3"
"978-0-387-79054-1" "978-0-387-84858-7" "978-0-387-87573-6" "978-0-387-88698-5" "978-0-387-88963-4"
"978-0-387-93837-0" "978-1-4020-5719-9" "978-1-4020-6099-1" "978-1-4020-6808-9" "978-3-642-35963-7"
"978-3-662-44874-8" "978-3-319-03762-2" "978-3-319-56194-3" "978-1-4614-0400-2" "978-3-319-27877-3"
"978-3-319-44794-0" "978-1-4419-9479-0" "978-3-319-18842-3" "978-3-319-48936-0" "978-3-319-21239-5"
"978-3-7091-0715-7" "978-1-4419-6488-5" "978-3-319-01851-5" "978-1-4939-3058-6" "978-3-319-26551-3"
"978-3-662-46321-5" "978-3-319-13072-9" "978-1-4614-4556-2" "978-1-4615-1077-2" "978-3-319-02099-0"
"978-3-642-37434-0" "978-981-10-2045-2" "978-3-319-57040-2" "978-3-319-23042-9" "978-3-319-53883-9"
"978-90-481-2516-6" "978-1-4899-7454-9" "978-3-662-53785-5" "978-3-319-51118-4" "978-3-319-57589-6"
"978-1-4419-1120-9" "978-3-642-23026-4" "978-3-319-44738-4" "978-3-319-05699-9" "978-3-319-47831-9"
"978-3-319-31791-5" "978-3-642-54083-7" "978-1-4612-1844-9" "978-1-84800-070-4" "978-3-642-19864-9"
"978-3-319-61088-7" "978-3-319-46162-5" "978-3-319-33916-0" "978-3-319-32862-1" "978-3-642-30250-3"
"978-1-4939-1194-3" "978-1-4613-0139-4" "978-3-319-54064-1" "978-1-4614-7116-5" "978-3-319-43341-7"
"978-1-4419-0641-0" "978-1-4419-5653-8" "978-3-319-12682-1" "978-1-4471-7307-6" "978-3-662-53045-0"
"978-3-642-33143-5" "978-3-319-31089-3" "978-3-319-12742-2" "978-3-319-52250-0" "978-1-4471-5134-0"
"978-3-319-28887-1" "978-1-4419-9504-9" "978-3-662-45171-7" "978-3-8349-6331-4" "978-1-84882-935-0"
"978-3-319-07806-9" "978-3-319-14142-8" "978-3-642-37314-5" "978-3-642-20951-2" "978-3-319-50091-1"
"978-3-540-77974-2" "978-3-319-19596-4" "978-3-662-53022-1" "978-1-4471-4474-8" "978-3-319-54413-7"
"978-3-642-37902-4" "978-3-319-46394-0" "978-1-4939-6374-4" "978-1-4612-4374-8" "978-3-319-59731-7"
"978-3-319-22309-4" "978-3-642-30319-7" "978-3-319-32185-1" "978-1-4614-2212-9" "978-3-662-49887-3"
"978-94-007-5757-8" "978-3-319-14941-7" "978-1-4939-2122-5" "978-3-319-58307-5" "978-1-4614-6271-2"
"978-3-319-21936-3" "978-3-319-09351-2" "978-3-319-21990-5" "978-1-4614-9170-5" "978-3-642-55309-7"
"978-1-4471-5201-9" "978-1-4939-2614-5" "978-3-319-20451-2" "978-1-4612-4360-1" "978-3-319-09171-6"
"978-94-007-1171-6" "978-3-319-23012-2" "978-1-4614-4809-9" "978-1-4419-0925-1" "978-3-658-07884-3"
"978-3-319-27265-8" "978-3-319-57883-5" "978-3-319-31650-5" "978-3-319-01195-0" "978-3-319-54349-9"
"978-3-662-43715-5" "978-981-4560-67-2" "978-3-319-23428-1" "978-94-007-1211-9" "978-3-319-27104-0"
"978-3-319-55444-0" "978-3-319-63913-0" "978-3-319-44561-8" "978-3-642-34132-8" "978-1-4614-3954-7"
"978-3-319-29854-2" "978-3-319-55615-4" "978-3-319-46407-7" "978-1-4419-9982-5" "978-3-319-53919-5"
"978-3-319-24551-5" "978-981-10-1802-2" "978-1-4471-6419-7" "978-1-4939-6572-4" "978-1-84800-322-4"
"978-1-4614-6940-7" "978-1-4612-0979-9" "978-3-319-11080-6" "978-3-642-30304-3" "978-3-319-29716-3"
"978-3-642-04101-3" "978-3-319-24346-7" "978-1-4613-0041-0" "978-1-4939-2712-8" "978-3-540-76504-2"
"978-1-4614-7630-6" "978-3-319-33405-9" "978-3-319-31036-7" "978-1-4939-1151-6" "978-3-642-40975-2"
"978-1-4614-3618-8" "978-3-319-10091-3" "978-1-4614-3523-5" "978-3-319-62872-1" "978-3-319-56475-3"
"978-1-4614-5538-7" "978-3-319-00401-3" "978-3-319-03623-6" "978-3-319-19464-6" "978-3-642-20556-9"
"978-1-4614-6227-9" "978-3-319-54398-7" "978-3-319-15018-5" "978-94-017-8771-0" "978-1-4939-2113-3"
"978-3-319-22951-5" "978-4-431-54526-2" "978-1-4419-6646-9" "978-3-319-65867-4" "978-1-4614-7138-7"
"978-3-319-00894-3" "978-3-319-44048-4" "978-3-319-12493-3" "978-1-4614-9236-8" "978-981-287-212-8"
"978-3-642-28980-4" "978-3-319-29791-0" "978-1-84628-642-1" "978-3-642-20059-5" "978-3-319-51412-3"
"978-3-319-20600-4" "978-3-319-19425-7" "978-3-662-54817-2" "978-3-319-44127-6" "978-1-4614-6786-1"
"978-3-319-24331-3" "978-3-319-50651-7" "978-3-662-54486-0" "978-1-4614-3987-5" "978-3-540-93804-0"
"978-1-4614-8933-7" "978-3-319-50319-6" "978-3-319-39439-8" "978-3-319-57750-0" "978-3-319-05290-8"
"978-3-319-01769-3" "978-94-007-6863-5" "978-1-4939-0867-7" "978-1-84628-168-6" "978-1-4419-7288-0"
"978-3-540-69934-7" "978-3-319-49810-2" "978-3-319-14240-1" "978-3-319-21173-2" "978-3-658-10183-1"
"978-3-319-45776-5" "978-1-4939-1911-6" "978-3-319-15195-3" "978-1-4614-7807-2" "978-1-4757-0576-8"
"978-3-319-29659-3" "978-1-4614-6486-0" "978-1-4471-6642-9" "978-1-4899-7550-8" "978-3-540-32899-5"
"978-3-319-24280-4" "978-1-4614-3143-5" "978-3-319-19587-2" "978-1-4939-2623-7" "978-3-540-27752-1"
"978-3-319-50017-1" "978-1-4614-7946-8" "978-3-319-61185-3" "978-3-662-46950-7" "978-3-319-18539-2"
"978-3-319-16874-6" "978-3-319-25970-3" "978-1-4614-6849-3" "978-3-319-34195-8" "978-94-017-7242-6"
"978-3-319-15666-8" "978-3-319-23880-7" "978-3-319-49875-1" "978-3-319-18398-5" "978-94-007-6113-1"
"978-1-4939-2766-1" "978-1-4614-2197-9" "978-3-319-14777-2" "978-1-4614-9138-5" "978-1-4612-1272-0"
"978-1-4471-5361-0" "978-1-4471-5601-7" "978-1-4471-6684-9" "978-1-4614-9126-2" "978-1-4757-2519-3"
"978-3-319-55606-2" "978-3-319-57252-9" "978-3-319-25675-7" "978-1-4614-8687-9" "978-3-642-20144-8"
"978-1-4614-4262-2" "978-0-387-44899-2" "978-0-387-71481-3" "978-3-319-14454-2" "978-3-319-48848-6"
"978-3-319-49849-2" "978-3-319-58715-8" "978-3-319-64786-9" "978-3-319-65451-5" "978-981-10-5218-7"
"978-1-4939-6676-9" "978-3-319-61158-7" "978-3-319-66631-0" "978-3-319-70920-8" "978-3-319-70790-7"
"978-3-319-63133-2" "978-3-662-49279-6" "978-3-319-64410-3" "978-3-319-66772-0" "978-3-319-68588-5"
"978-3-319-68598-4" "978-3-319-72547-5" "978-3-319-58487-4" "978-3-319-67395-0" "978-3-319-65439-3"
"978-3-319-73004-2" "978-3-319-66219-0" "978-3-319-75771-1" "978-3-319-73123-0" "978-94-024-1144-7"
"978-3-662-56272-7" "978-3-662-56509-4" "978-3-319-68834-3" "978-3-319-73132-2" "978-3-319-65094-4"
"978-3-319-72682-3" "978-3-319-59978-6" "978-3-319-65682-3" "978-3-319-77649-1" "978-3-319-76442-9"
"978-3-319-78729-9" "978-1-349-95348-6" "978-3-319-68301-0" "978-3-319-78361-1" "978-3-319-77809-9"
"978-3-662-55381-7" "978-3-319-77425-1" "978-981-13-0399-9" "978-3-319-91041-3" "978-3-319-74965-5"
"978-3-662-57265-8" "978-981-13-1090-4" "978-3-319-78181-5" "978-3-319-89491-1" "978-3-319-91722-1"
"978-3-319-72911-4" "978-3-319-91575-3" "978-3-319-92207-2" "978-3-319-95381-6" "978-3-319-63588-0"
"978-3-319-91890-7" "978-3-319-89292-4" "978-3-319-72314-3" "978-3-319-75502-1" "978-3-319-75708-7"
"978-3-319-92804-3" "978-3-319-94463-0" "978-3-319-72347-1" "978-3-319-92429-8" "978-3-319-95762-3"
"978-3-319-92333-8" "978-981-13-2475-8" "978-3-662-56707-4" "978-3-319-94313-8" "978-3-319-98833-7"
"978-3-319-97298-5" "978-3-030-02405-5" "978-3-319-77434-3" "978-3-319-91155-7" "978-3-319-96622-9"
"978-3-319-96713-4" "978-3-030-00581-8" "978-981-10-8297-9" "978-981-10-8321-1" "978-981-13-0785-0"
"978-3-319-75804-6" "978-3-319-99516-8" "978-3-319-99118-4" "978-3-030-02604-2" "978-3-030-03255-5"
"978-3-319-94743-3" "978-981-13-2023-1" "978-3-030-00464-4" "978-3-319-77315-5" "978-3-030-00467-5"
"978-3-030-01279-3" "978-3-030-04516-6" "978-3-319-99420-8" "978-3-319-71288-8" "978-3-319-72000-5"
"978-3-030-05609-4" "978-3-319-74373-8" "978-3-319-96337-2" "978-3-030-05900-2" "978-981-13-6643-7"
"978-3-030-10552-5" "978-3-319-98875-7" "978-3-030-12489-2" "978-981-13-3621-8" "978-3-319-74746-0"
"978-3-030-13005-3" "978-3-030-13605-5" "978-3-030-00710-2" "978-3-030-12727-5" "978-3-030-13020-6"
"978-3-030-15671-8" "978-3-030-11117-5" "978-3-030-15224-6" "978-3-030-18435-3" "978-3-030-13788-5"
"978-3-319-68837-4" "978-981-13-7496-8" "978-981-13-8759-3" "978-3-030-19182-5" "978-3-030-20290-3"
"978-3-030-25943-3" "978-3-030-19128-3" "978-1-4939-9621-6"
);
# Handle cleanup when user presses ctrl+c
saneExit() { rm -f "${latestDownload}"; exit $?; }
trap "saneExit" SIGINT;
latestDownload="";
# Create the directory to store downloads
mkdir -p DownloadedEBooks;
cd DownloadedEBooks || exit;
# Track the latest pdf to support canceling
# Loop through ISBNs, fetch the actual pdf links and download them
for i in "${!freeEBookISBNs[@]}"
do
html=$(curl --silent -L "http://link.springer.com/openurl?genre=book&isbn=${freeEBookISBNs[i]}");
linkPart=$(echo "${html}" | grep -Eo '<a.*[^>]+>' | grep -Eo 'href="[^\"]+"' | grep -Eo '\/content\/pdf\/[^/"]+' -m 1);
linkFull="https://link.springer.com${linkPart}";
title=$(echo "${html}" | grep -Eo '<title.*[^>]+>' | sed 's/<title>//g' | sed 's/\ |\ SpringerLink<\/title>//g');
titleCleaned=$(echo "${title}" | sed 's/ /_/g' | sed 's/\///g' | sed 's/\://g' | sed 's/\,//g' | sed 's/\.//g' | sed 's/\&\;/and/g' | sed 's/\&\#39\;//g');
fileName="${titleCleaned}_[${freeEBookISBNs[i]}].pdf";
echo "===> $((i + 1))/${#freeEBookISBNs[@]} Starting to download: ${title}.";
if [ -f "${fileName}" ]; then
latestDownload="none";
echo "File already exists."
else
latestDownload="${fileName}";
curl -o "${fileName}" "${linkFull}";
fi
done
echo "All free EBooks downloaded. Enjoy reading!";