5分钟撸了个小小爬虫....
咪哥杂谈
共 1985字,需浏览 4分钟
·
2019-12-06 23:21
咪哥杂谈
本篇阅读时间约为 4 分钟。
1
前言
这几天在用“必应”搜索时,发现必应的背景图片挺好看的,有的是风景,有的是动物。。。于是产生了一个想法,爬下来当做桌面背景图吧。。
2
开工
简单的分析下:必应首页。
如何下载呢?其实很简单,说下逻辑。
requests库请求主页,正则匹配地址,再用 requests 请求,将返回的 content 以二进制的形式写入文件,保存为图片。
核心代码:
url = 'https://cn.bing.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) '
'AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15'
}
r = requests.get(url=url, headers=headers)
# 正则匹配到 url 地址
a = re.findall(r'rel="preload" href="(.*?)" as="image"', r.text)
if a:
# 拼接 https://cn.bing.com/xxxxxx图片的地址
picture_url = parse.urljoin(url, a[0])
print(f'当前图片地址:{picture_url}')
r_picture = requests.get(url=picture_url, headers=headers)
write_file(file, r_picture.content) # 写入文件
执行后的结果:
主要是正则表达式,如何书写,匹配出来,用 urllib 的 urljoin 方法拼接下图片地址即可。可以看下核心代码的相关注释。
3
定时任务
windows系统:
如果你是 windows 环境,推荐看下这篇博客,之前是我总结的如何用 windows 定时执行 Python 文件。
https://blog.csdn.net/s740556472/article/details/78239204
大咪的csdn博客
了解 Linux 系统的同学,一定知道有个自带的系统工具,叫 crontab。
使用方法,两个。
1. 编辑 crontab :
crontab -e
回车后,进入内容,用法和 vim 一样,按下 i 即可编写,然后 wq 保存。
0 10 * * * /Users/sy/anaconda3/bin/python /Users/sy/PycharmProjects/python-tools/spider/bing_picture/crawl_bing.py > /Users/sy/PycharmProjects/python-tools/spider/bing_picture/log
第一段,是cron特有的时间配置表达式,可以看下图的简介,顺便给大家一个网址,可以在线查看其表达式的含义。而我脚本中写的则是每天十点整执行 Python。
工具网址:
https://tool.lu/crontab/
写完 cron 表达式,后面跟的其实就是 python xxx.py 这样的命令,只不过,在 cron 中一定要写绝对路径,否则不生效。
再执行 python 命令的基础上,我还追加了 > xxx.log 这样,意思是将 python 脚本的打印内容输出到一个指定目录的 log 文件里。
2. 查看定时任务 crontab:
crontab -l
每日自动抓取,导入图片,换背景即可。
4
总结
本篇介绍的定时工具,其实用途很大,因为基于系统层面,所以不依赖于脚本,只要你电脑开着,就可以随心所欲的触发你写的脚本,而不依赖你脚本本身使用代码的定时任务!
想看完整代码的同学,可以后台回复 bing ,即可获得。
评论