Python抓取必应搜索背景图片

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于编码珠玑 ,作者刘亚曦

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

想必大多数小伙伴们已经对百度搜索的广告推荐机制深痛恶绝了,但凡哪怕涉及到一点点商业内容的搜索,出来的结果几乎全是广告。其实,除了谷歌搜索外,还有一个小众的搜索引擎,效果也并不比百度差多少,关键是搜索结果几乎没有广告,他就是微软的亲儿子,必应搜索。

每次打开必应搜索,我们都会看到一张精美的背景图片,而且每天都更新。之前微软还提供了每张图片的下载地址,后来就直接取消了。但是如果我们能够获取这些背景图片并把它们设为电脑壁纸,岂不是一件很有趣的事情呢,那么如何才能获取到这些照片呢,今天我手把手教你写个Python脚本来抓取必应搜索的背景图片。

首先,我们安装IDE,这里我选择Python最流行的PyCharm,大家可以到官网上下载:

https://www.jetbrains.com/pycharm/download/#section=windows

安装方法非常简单,直接下一步就行。

安装完成后,打开IDE,我们创建一个Python的项目

完成后,还要事先安装几个库,方便我们后面写代码使用,分别是:

request

BeautifulSoup4

lxml

安装方法很简单,我们点击编译器左上角的File->Settings弹出对话框:

我们双击上图中的pip,在弹出的对话框里面分别搜索上面罗列的三个库名字,然后点击左下角的InstallPackage即可完成安装:

完成以后,我们开始写代码:

首先我们引入四个我们需要的包代码:

if __name__=='__main__':
    for i in range(8):
        url = 'https://cn.bing.com/HPImageArchive.aspx?idx={}&n=1'.format(i)
        html = get_page(url)
        soup = BeautifulSoup(html, 'lxml')
        text = soup.find(name='url').string
        img_url = 'https://cn.bing.com' + text
        img_name = re.match('^/th\?id=(.*?)&', text).group(1)
        download(img_url, '填你自己想保存的文件路径c:/..', img_name)

然后我们定义一个get_page的函数来获取request请求得到的网页内容,不过为了伪装成浏览器访问,我们这里要更改一下User-Agent字段:

def get_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
    }
    response = requests.get(url, headers=headers)
      if response.status_code == 200:     #响应状态码表示服务器对请求的响应结果。200代表服务器响应成功,403代表禁止访问,404代表页面未找到
            return response.text

再来定义一个下载图片的函数download,传入的参数包含图片的url路径,你自己定义的文件夹路径还有图片的名称:

def download(url, path, fname):
    response = requests.get(url)
    if response:
        with open(os.path.join(path, fname), 'wb') as f:
            f.write(response.content)
            print('successful: {} .'.format(fname))
    else:
        print('faild: {}.'.format(fname))

好了,上面两个主要的函数定义好了以后,我们再定义main函数,来不断调用他们,注意download函数的路径要填写你自己的文件夹路径。由于必应官方只保存了八张原图,所以我们就简单粗暴地只循环8次即可,代码如下:

if __name__=='__main__':
    for i in range(8):
        url = 'https://cn.bing.com/HPImageArchive.aspx?idx={}&n=1'.format(i)
        html = get_page(url)
        soup = BeautifulSoup(html, 'lxml')
        text = soup.find(name='url').string
        img_url = 'https://cn.bing.com' + text
        img_name = re.match('^/th\?id=(.*?)&', text).group(1)
        download(img_url, '填你自己想保存的文件路径c:/..', img_name)

好了,上面就是完整的代码内容,我们试着运行一次:

结果完全没问题,看文件夹里面的图片也保存下来了:

随便打开一张,都是非常精美的:

有没有发现图片非常的漂亮,随便找一张设置成电脑桌面看一下效果吧:

可以看到效果非常的精美。

(0)

相关推荐

  • Python爬取网易云音乐辑的图片、专辑名和专辑出版时间

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 作者:阿里波特 来源:CSDN Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 h ...

  • (1条消息) python批量爬取图片并保存在本地文件夹下

    python批量爬取图片并保存在本地文件夹下 本人目前是山西农业大学软件学院大三的一名学生,由于疫情严重,积极响应党和国家的号召宅在家中,今日闲来无事,就对学院的官网下手啦,将官网上介绍学院的老师的照 ...

  • Python爬取某网站文档数据完整教程(附源码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境 Python 3.6 Pycharm 相关模块的使用 import osimp ...

  • python测试开发django-48.xadmin上传图片django-stdimage

    前言 django通过自带的ImageField可以实现图片上传,如果想在列表页面也显示图片缩略图的话,可以用django-stdimage插件来实现 django-stdimage django-s ...

  • Python爬图片

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/10/31 17:54 # 爬取图片 import requests from ...

  • Python爬虫日记一:爬取豆瓣电影中速度与激情8演员图片

    2017.04.27 16:34:04字数 915阅读 1,958 一.前言 这是我第一次写文章,作为一个非计算机,编程类专业的大二学生,我希望能够给像我这样的入门的朋友一些帮助,也同时激励自己努力写 ...

  • Python 抓取知乎几千张小姐姐图片是什么体验?

    来源:Python 技术「ID: pythonall」 知乎上有许多关于颜值.身材的话题,有些话题的回复数甚至高达几百上千,拥有成千上万的关注者与被浏览数.如果我们在摸鱼的时候欣赏这些话题将花费大量的 ...

  • 利用IDM站点抓取批量下载网站图片

    我们都知道Internet Download Manager(IDM)是一款功能丰富的下载软件,除了下载视频,音乐,文档这种传统文件以外,你知道它的[站点抓取]这一功能也十分强大吗? 这一功能方便我们 ...

  • 用 Python 抓取公号文章保存成 PDF

    今天为大家介绍如何将自己喜欢的公众号的历史文章转成 PDF 保存到本地.前几天还有朋友再问,能不能帮把某某公众号的文章下载下来,因为他很喜欢这个号的文章,但由于微信上查看历史文章不能排序,一些较早期的 ...

  • 用 Python 抓取公号文章保存成 HTML

    上次为大家介绍了如果用 Python 抓取公号文章并保存成 PDF 文件存储到本地.但用这种方式下载的 PDF 只有文字没有图片,所以只适用于没有图片或图片不重要的公众号,那如果我想要图片和文字下载下 ...

  • Python 抓取网页乱码原因分析

    在用 python2 抓取网页的时候,经常会遇到抓下来的内容显示出来是乱码. 发生这种情况的最大可能性就是编码问题:运行环境的字符编码和网页的字符编码不一致. 比如,在 windows 的控制台(gb ...

  • 『爬虫四步走』手把手教你使用Python抓取并存储网页数据!

    爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...

  • Python抓取B站评论词云可视化(一看就会)

    前言 大家好,我是南南 众所周知,作为一个单身lsp,b站舞蹈区探花,咳咳咳,直接进入正题吧 由于内容过多,爬虫代码csdn上有很多篇博客讲解,我就不写了(我是不会告诉你是我懒的) 视频地址:BV12 ...

  • 「爬虫四步走」手把手教你使用Python抓取并存储网页数据

    爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...

  • 利用python抓取页面数据

    利用python抓取页面数据