您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    5分钟撸了个小小爬虫....
    时间:2020-03-01 21:18 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    这几天在用“必应”搜索时,发现必应的背景图片挺美观的,有的是景色,有的是植物。。。于是产生了一个想法,爬上去当做桌面背景图吧。。

    由于是每天必应的图片都会变,所以后续结合电脑自带的定时义务,可以到达每天自动抓取图片的效果。

    开工

    复杂的剖析下:必应首页。

    5分钟撸了个小小爬虫....

    翻开 F12 ,找到对应的央求,可以很容易的看到有这么个链接,然后点一下,就会新翻开一个页面,此时显示的就是背景图片。

    如何下载呢?其实很复杂,说下逻辑。

    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) # 写入文件 

    执行后的结果:

    5分钟撸了个小小爬虫....

    主要是正则表达式,如何书写,婚配出来,用 urllib 的 urljoin 办法拼接下图片地址即可。可以看下中心代码的相关注释。

    定时义务

    Python代码一共 25 行,关键是如何应用系统定时来制造每天触发的效果。

    运用办法,两个。

    编辑 crontab :

    crontab -e 

    5分钟撸了个小小爬虫....

    回车后,进入内容,用法和 vim 一样,按下 i 即可编写,然后 wq 保存。

    5分钟撸了个小小爬虫....

    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。

    工具网址:

    crontab执行时间计算​tool.lu

    写完 cron 表达式,前面跟的其实就是 python xxx.py 这样的命令,只不过,在 cron 中一定要写相对途径,否则不失效。

    再执行 python 命令的基础上,我还追加了 > xxx.log 这样,意思是将 python 脚本的打印内容输入到一个指定目录的 log 文件里。

    2.查看定时义务 crontab:

    crontab -l 

    5分钟撸了个小小爬虫....

    cron -l 则是查看定时义务列表内容的,可以看到有多少义务配置了。假设有多个定时脚本,则可以回车换行继续添加即可。

    每日自动抓取,导入图片,换背景即可。

    总结

    嗯,这就是本次的 5 分钟撸一个小爬虫系列!

    本篇引见的定时工具,其适用途很大,由于基于系统层面,所以不依赖于脚本,只需你电脑开着,就可以为所欲为的触发你写的脚本,而不依赖你脚本本身运用代码的定时义务!

    (责任编辑:admin)