爬虫实践 必应每日一图

背景

必应每日提供一图作为网站背景

此文实现了如何抓取其结果的过程

分析

bing提供的接口 :

https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1

返回结果

抓取的图片

知识点

如何下载url图片?
使用request 中的get函数 get(pic_url, stream=True)

Demo

具体程序如下所示:

import os
import json
from requests import get


class ImageDownloader:
    def __init__(self):
        self.root = os.getcwd()
        self.img_dir = os.path.join(self.root, 'img')
        self.Json_data = ''
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
        }
        os.makedirs(self.root, exist_ok=True)
        os.makedirs(self.img_dir, exist_ok=True)
    def spyder(self):#定义一个爬虫函数
        index = 0
        url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx={%d}&n=1&mkt=zh-CN' % (index)
        response = get(url,headers=self.headers)
        response.encoding='utf-8'
        self.Json_data = response.json()


    def get_img_and_save_file(self):
        pic_url = r'https://www.bing.com{0}'.format(self.Json_data['images'][0]['url'])
        start_date = self.Json_data['images'][0]['startdate']
        print(pic_url)
        print(start_date)
        pic = get(pic_url, stream=True)
        if (pic.status_code == 200):
            open(r'./img/{0}.png'.format(start_date), 'wb').write(pic.content)
            print('Create Image Success!')
        else:
            print('Create Image Faild!')

def main() -> None:
   
    Downloader = ImageDownloader()
    Downloader.spyder()
    Downloader.get_img_and_save_file()#提取图片

if __name__ == '__main__':
    main()
    

总结

使用requests 可以大大的简化下载图片的过程

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值