Python自动爬取Bing每日美图(crontab)

入门向的帖子。给某人的教程。

首先是python爬虫脚本。注意,里面有输入日志,用来保留图片的url。

没加什么异常容错,就是单纯的原理脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import re, requests, urlparse, os, datetime
bing_url = 'http://cn.bing.com'
c = requests.get(bing_url).content
# 正则的标签模式,可以用dict来轻松访问,省得元组编号了。
r = 'g_img={url: "(?P<url>.+?)"'
img_path = re.search(r, c).groupdict()['url']
img_url = urlparse.urljoin(bing_url , img_path)
today_str = datetime.datetime.now().strftime("%Y-%m-%d")
# print作为日志输出。在shell中重定向到日志文件中即可
print '{}:{}'.format(today_str, img_url)
file_name = '{}_{}'.format(today_str, os.path.basename(urlparse.urlsplit(img_url).path))
# stream流模式,方便保存图片。
resp = requests.get(img_url, stream=True)
if resp.status_code == 200:
with open(file_name, 'wb') as f:
for chunk in resp.iter_content(1024):
f.write(chunk)

然后,用crontab -e 来添加一个日常任务。每天凌晨1:30分跑起来:

1
30 1 * * * cd /srv/bing_daily_image; /usr/bin/python /srv/bing_daily_image/bing_daily_image.py >> /srv/bing_daily_image/record.log 2>&1

Bingo~