自动下载报纸和杂志!

拉詹·巴特拉伊 - 7 months and 2 days ago / Dec 2019
自动下载报纸和杂志!

原文发布于:2018-10-03。更新日期:2019-12-20。


今天上午[2018年10月3日格林尼治标准时间[545],我们在dev.to推特聊天中进行了惊人的讨论。

嗯,有很多令人惊讶的自动化的东西和想法,这里是一个我张贴在答复。


下面列出的杂志和报纸是当地媒体,可能不适合您所在的地理区域或地区。所以,请建议。


在这个想法的背后:
这种下载报纸的自动化背后的基本思想是我经常看当地报纸,因为我很少在电视上看新闻。大多数时候,我是一个互联网的家伙,所以我有所有是浏览电子纸可能。Media house 的在线门户允许下载 PDF 版的报纸和杂志(我现在正在开发),所以我想出了这个自动化的想法。这是一个非常基本的脚本场景,我写了近一年半。所以,让我们开始工作。



场景:

  • 2版报纸,英文和尼泊尔文每天出版。
  • 每周出版1份尼泊尔小报。* 每周五!
  • 1份每周以尼泊尔文出版的杂志。* 每个星期天!

*对于那些可能不知道,尼泊尔是尼泊尔的国语,位于南亚,被称为佛和山的土地。珠穆朗玛峰。

工作资料

我们能做的第一件事是检查系统日期,并获取年、月、日、周两天,这些日期可以在 Bash 喜欢这个。

1
2
3
4
5
6
7
8
9
#checking系统y=$(日期+%Y) 的年份以全格式#prints的日期。2017#prints美元(日期+%m)。当天#prints 04d=$(日期+%d)。#prints日12w=$(日期=%u)。eg: 3=星期三

此处使用的变量在使用 Wget。

脚本首先检查主目录,如果该目录不存在,它将创建该文件夹。然后进入文件夹。脚本使用 Wget 下载纸张,请确保它已安装在系统中,或者如果不存在,我们可以检查和安装。但是在这段时间里,我跳过了这部分。

下一步是为每个报纸和杂志创建一个单独的文件夹,以便脚本自动下载其中的电子书。跳过所有其他解释,它将执行的主要任务是检查文件夹,如果不存在,则创建并下载脚本运行时可用的 epaper。

下载epaper时,我们可以执行的主要命令看起来像这样。

1
wget -O =报纸名称或杂志名称-$y-$m-$d.pdf"http://epaper.ekantipur.com/epaper/name-of-newspaper-or-magazine/$y -$m-$d/$y-$m-$d.pdf"

虽然命令块是自我解释,一点点解释。

报纸和杂志的电子版今天将像这样 [2018-10-03.pdf],所以我们使用第一步的变量来替换当天的下载链接。周一被提取,以检查周杂志考虑星期一作为1,因为小报出版每周五和杂志每周日。

下一部分将设置 克朗作业 我们将告诉脚本每 6 或 7 点运行一次。因此,我们设置 cronjob 如下所示:

克朗塔布 -e

然后插入像

0 6 = [ / 首页 /首页/用户名/脚本/报纸到 pdf.sh 路径是脚本位置的位置。

此外,我们可以在 cron 中自定义,以简化您的工作需要。但就我而言,我禁用了电子邮件输出。这就是今天!

下面是完整的脚本。

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
软件工程师的工作。全栈Ruby on Rails开发者。DevOps和Blockchain.Tech Blogger。查询和文章:hello@cdrrazan.com -Rb


由 Disqus供电的评论