栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫实践 必应每日一图

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫实践 必应每日一图

背景

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

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

分析

bing提供的接口 :

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

返回结果

抓取的图片

知识点

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

Demo

具体程序如下所示:

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 可以大大的简化下载图片的过程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号