当前位置: 首页 > 科技观察

5分钟搞定一只小爬虫....

时间:2023-03-15 20:37:29 科技观察

前言这几天在“必应”上搜索,发现必应的背景图还是蛮漂亮的,有的是风景,有的是动物。..于是灵机一动,爬下来当桌面背景图。.由于Bing中的图片每天都会变化,结合电脑自带的定时任务,可以达到每天自动抓图的效果。开始简单分析:BingHomepage。打开F12,找到对应的request,可以很容易的看到有这么一个链接,然后点击,会打开一个新的页面,此时会显示背景图片。如何下载?其实很简单,说说逻辑吧。requests库请求首页,将地址与正则模式进行匹配,然后使用requests请求将返回的内容以二进制形式写入文件,保存为图片。核心代码:url='https://cn.bing.com'headers={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_15_1)''AppleWebKit/605.1.15(KHTML,likeGecko)Version/13.0。3Safari/605.1.15'}r=requests.get(url=url,headers=headers)#正则匹配url地址a=re.findall(r'rel="preload"href="(.*?)"as="image"',r.text)ifa:#拼接地址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方法可以用来拼接图片的url。可以看到核心代码的相关注释。定时任务Python代码一共25行。关键是如何利用系统定时来打造日常的触发效果。有两种使用方法。编辑crontab:crontab-e回车后,输入内容,用法同vim,按i写入,然后wq保存。010***/Users/sy/anaconda3/bin/python/Users/sy/PycharmProjects/python-tools/spider/bing_picture/crawl_bing.py>/Users/sy/PycharmProjects/python-tools/spider/bing_picture/logAparagraph是cron特有的时间配置表达式。可以看下图中的介绍。顺便说一下,我会给你一个网站,你可以在上面在线查看这个表达的意思。而我在脚本中写的是每天十点执行Python。工具网址:crontab执行时间计算tool.lu写完cron表达式后,其实后面跟着一个类似pythonxxx.py的命令,但是绝对路径一定要写在cron里,否则不生效。在执行python命令的基础上,我还添加了>xxx.log,意思是将python脚本打印的内容输出到指定目录下的日志文件中。2、查看定时任务crontab:crontab-lcron-l是查看定时任务列表的内容,可以看到配置了多少个任务。如果有多个时序脚本,可以回车换行继续添加。每天自动抓取,导入图片,更换背景。总结好了,这就是这个5分钟的爬虫系列!本文介绍的计时工具其实非常好用。因为是基于系统层面的,所以不依赖于脚本。只要您的计算机处于开机状态,您就可以随心所欲地触发它。您编写的脚本,不依赖于您的脚本本身使用代码的计划任务!