Automatisieren Sie den Download von Zeitungen und Zeitschriften!

Durch Rajan Bhattarai - 7 months and 2 days ago / Dec 2019
Automatisieren Sie den Download von Zeitungen und Zeitschriften!

Ursprünglich veröffentlicht am: 2018-10-03. Aktualisiert am: 2019-12-20.


Heute Morgen [3. Oktober 2018 GMT +545] hatten wir diese erstaunliche Diskussion im dev.to Twitter-Chat.

Nun, es gab viele der überraschenden Automatisierungsfragen und -ideen, und hier ist eine, die ich als Antwort darauf gepostet habe.


Bei den unten aufgeführten Zeitschriften und Zeitungen handelt es sich um lokale Medien, die möglicherweise nicht für Ihre geografische Region oder Ihr Gebiet geeignet sind. Lassen Sie sich also bitte beraten.


Hinter dieser Idee:
Der Grundgedanke hinter dieser Automatisierung des Herunterladens der Zeitung ist, dass ich oft Lokalzeitung lese, während ich nur selten Nachrichten im Fernsehen sehe. Meistens bin ich ein Internet-Mensch gewesen, so dass mir nur das Durchblättern der Zeitung möglich war. Das Online-Portal des Medienhauses bietet Zugang zum Herunterladen der Zeitung und der Zeitschriften auch in der PDF-Version [, die ich jetzt entwickle ], also kam ich auf diese Automatisierungsidee. Das ist ein sehr grundlegendes Skript-Szenario, das ich vor fast eineinhalb Jahren geschrieben habe. Also, lassen Sie uns an die Arbeit gehen.



Szenario:

  • 2 Versionen der Zeitung, Englisch und Nepali täglich veröffentlicht.
  • 1 Boulevardzeitung, die wöchentlich in Nepali erscheint. [ jeden Freitag! ]
  • 1 Zeitschrift, die wöchentlich in Nepali erscheint. [ jeden Sonntag! ]

Für diejenigen, die es vielleicht nicht wissen: Nepali ist die Nationalsprache, die hier in Nepal gesprochen wird, das in Südasien liegt und als Land des Buddha und des Berges bekannt ist. Everest bekannt ist.]

Arbeitsmaterial

Das erste, was wir tun können, ist, das Systemdatum zu überprüfen und das Jahr, den Monat, den Tag und den Wochentag zu ermitteln, was in bash wie dieses.

1
2
3
4
5
6
7
8
9
#Kontrolle des Datums mit dem System
y=$(Datum +%Y)
# druckt das Jahr im vollen Format. Eg: 2017
m=$(Datum +%m)
#druckt den Monat. Ei: 04
d=$(Datum +%d)
#prints the day. Ei: 12
w=$(Datum +%u)
#druckt den Wochentag. Bsp: 3=Mittwoch

Die hier verwendeten Variablen sind nützlich bei der Verwendung mit wget.

Das Skript prüft zunächst das Hauptverzeichnis, und wenn das Verzeichnis dort nicht vorhanden ist, erstellt es den Ordner. Dann tritt es in den Ordner ein. Das Skript verwendet wget zum Herunterladen des Papiers, stellen Sie sicher, dass es bereits im System installiert ist, oder wir könnten prüfen und installieren, falls es nicht vorhanden ist. Aber während dieser Zeit überspringe ich diesen Teil.

Im nächsten Schritt erstellen wir für jede Zeitung und jedes Magazin einen eigenen Ordner, so dass das Skript automatisch das darin enthaltene Epaper herunterlädt. Die Hauptaufgabe besteht darin, den Ordner zu überprüfen und, falls er nicht vorhanden ist, das verfügbare Epaper zu erstellen und herunterzuladen, während das Skript ausgeführt wird.

Der Hauptbefehl, den wir beim Herunterladen von epaper ausführen können, sieht so aus.

1
wget -O [Name-der-Zeitung-oder-Zeitschrift]-$y-$m-$d.pdf "http://epaper.ekantipur.com/epaper/name-of-newspaper-or-magazine/$y-$m-$d/$y-$m-$d-$d.pdf"

Obwohl der Befehlsblock selbsterklärend ist, eine kleine Erklärung.

Die Epaper-Version der Zeitung und der Zeitschriften würde für heute so aussehen [2018-10-03.pdf], deshalb haben wir die Variable aus dem ersten Schritt verwendet, um sie im Download-Link für den Tag zu ersetzen. Der Wochentag wird extrahiert, um die Wochenzeitschriften zu prüfen, wobei Montag als 1 betrachtet wird, da die Boulevardzeitung jeden Freitag und die Zeitschrift jeden Sonntag erscheint.

Der nächste Teil wird die Einrichtung einer KRONENJOB wo wir das Skript alle 6 oder 7 Uhr morgens ausführen lassen werden. Also richten wir den Cronjob wie folgt ein:

crontab -e

Dann einfügen wie

0 6 * * * * /home/Benutzername/Skript/Zeitung-zu-pdf.sh wobei der Pfad Ihr Skript-Speicherort ist.

Zusätzlich können wir im Cron Anpassungen vornehmen, um Ihre Arbeitsanforderungen zu vereinfachen. Aber in meinem Fall habe ich die E-Mail-Ausgabe deaktiviert. Das ist alles für heute!

Hier ist das vollständige Skript.

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
#!/bin/bash
#Description
#program to download the epaper from the kantipur.com
#Available Epapers by ekantipur media
#    Kantipur
#    The Kathmandu Post
#    Saptahik
#    Nepal
# 1. Clone/Download the zip.
# 2. Give execute permission to the script file by  chmod +x ekantipur.sh
# 3. Run the script ./ekantipur.sh .
# Epapers will be downloaded in the following format: Newspapername-year-month-day.pdf
# Replace ~/Newspaper/kantipur/*/* in the download link with the directory to wherever you want to download!

echo "################################################################"
echo "###################  News-2-PDF downloader! ####################"
echo "################################################################"
echo ""
echo "Checking Date with your system.. Please wait!"
#checking the date with the system
y=$(date +%Y)
#prints the year in full format. Eg: 2017
m=$(date +%m)
#prints the month. Eg: 04
d=$(date +%d)
#prints the day. Eg: 12
w=$(date +%u)
#prints the week day. Eg: 3=wednesday

#using wget
#downloading the kantipur[daily-nepali]
#checking the date with the system

echo "Folder may exist. It will automatically enter into the directory if present!"
cd ~
if [ -d Kantipur ]
then
    echo "Directory is present. Entering into the directory..."
else
    echo "Directory is not present. Creating the directory..."
    mkdir Kantipur
fi
cd Kantipur
echo "Downloading Kantipur Dainik for today.. Please wait!"
if [ -d Kantipur-daily ]
then
    echo "Directory is present. Entering into the directory..."
else
    echo "Directory is not present. Creating the directory..."
    mkdir Kantipur-daily
fi
cd Kantipur-daily
wget -O kantipur-$y-$m-$d.pdf "http://epaper.ekantipur.com/epaper/kantipur/$y-$m-$d/$y-$m-$d.pdf"
echo "Successfully downloaded Kantipur for today!"

#downloading the kathmandu post[daily-english]
cd ../
if [ -d Kathamndu-Post ]
then
    echo "Directory is present. Entering into the directory..."
else
    echo "Directory is not present. Creating the directory..."
    mkdir Kathmandu-Post
fi
cd Kathmandu-Post
echo "Downloading The Kathmandu Post for today.. Please wait!"
wget -O thekathmandupost-$y-$m-$d.pdf "http://epaper.ekantipur.com/epaper/the-kathmandu-post/$y-$m-$d/$y-$m-$d.pdf"
echo "Successfully downloaded The Kathmandu Post for today!"

#Saptahik is released every friday!
#checking the system date to match if it is friday
#monday=1
if [ $w == 5 ]
then
echo "Downloading Saptahik for this weekend.. Please wait!"
cd ../
if [ -d Saptahik ]
then
    echo "Directory is present. Entering into the directory..."
else
    echo "Directory is not present. Creating the directory..."
    mkdir Saptahik
fi
cd Saptahik
wget -O saptahik-$y-$m-$d.pdf "http://epaper.ekantipur.com/epaper/saptahik/$y-$m-$d/$y-$m-$d.pdf"
echo "Successfully downloaded Saptahik for this week!"
else
echo "Saptahik isn't available for today! Wait till Friday!"
fi

#Nepal magazine is released every Sunday
#checking the system date to match if it is Sunday
#monday=1
if [ $w == 7 ]
then
echo "Downloading Nepal for this weekend.. Please wait!"
cd ../
if [ -d Nepal ]
then
    echo "Directory is present. Entering into the directory..."
else
    echo "Directory is not present. Creating the directory..."
    mkdir Nepal
fi
cd Nepal
wget -O nepal-$y-$m-$d.pdf "http://epaper.ekantipur.com/epaper/nepal/$y-$m-$d/$y-$m-$d.pdf"
echo "Successfully downloaded Nepal for this weekend!"
else
echo "Nepal magazine isn't available for today! Wait till Sunday!"
fi
echo "################################################################"
echo "################  Operation Successfully completed! ############"




Rajan Bhattarai
Rajan Bhattarai
Software-Ingenieur nach Werk. Full Stack Ruby on Rails-Entwickler. DevOps und Blockchain.Tech Blogger. Anfragen und Artikel: hello@cdrrazan.com -Rb


Kommentare powered by Disqus