Python 爬取必应壁纸的实例讲解


Posted in Python onFebruary 24, 2020

最近看了下python,就想着获取下bing的图片,每天定时爬取,保存到本地,可以做背景图片用。 也在网上看了一些其他的例子。就自己动手写了一个小的爬图片的python脚本。

我们进来来爬取的是必应壁纸的相关实例,代码如下:

import re
import os
import requests
from time import sleep

headers = {
  "User-Agent": ("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) "
          "Gecko/20100101 Firefox/64.0")
}

def get_index(resolution, index=1):
  url = f"https://bing.ioliu.cn/ranking?p={index}"
  res = requests.get(url, headers=headers)
  urls = re.findall('pic=(.*?)\\.jpg', res.text)
  _old_resolution = urls[1].split("_")[-1]
  return {url.split("/")[-1].replace(_old_resolution, resolution): url.replace(_old_resolution, resolution) + ".jpg"
      for url in urls}

def download_pic(pics):
  if os.path.exists('F:\\必应壁纸'):
    pass
  else:
    os.mkdir('F:\\必应壁纸')
    print('目录创建成功')
  try:
    for pic_name, pic_url in pics.items():
      res = requests.get(pic_url, headers=headers)
      with open(f"F:\\必应壁纸\\{pic_name}.jpg", mode="wb") as f:
        f.write(res.content)
      print(f"{pic_name} 下载完成")
  except Exception as e:
    print("下载出错", e)

def input_index():
  print("必应壁纸下载工具, 本工具未经资源站授权.")
  print("仅做学习和交流之用, 随时有可能停止维护.")
  print("目前资源站收容页数为87,当前仅提供1920x1080分辨率下载")
  while True:
    sleep(0.1)
    index = input("请输入要下载的页数(Max=87):")
    try:
      if index == "Q":
        exit()
      index = 87 if int(index) > 87 else int(index)
      return index
    except ValueError:
      print("请输入数字, 或输入Q退出!")

def main():
  index = input_index()
  i = 1
  while i <= index:
    print(f"当前第{i}页,共需要下载{index}页")
    pics = get_index("1920x1080", i)
    download_pic(pics)
    i += 1
  print("下载完成,将在3秒后关闭...")
  sleep(1)
  print("2")
  sleep(1)
  print("1")
  sleep(1)
  print("0")

if __name__ == '__main__':
  main()

以上就是Python 爬取必应壁纸的实例讲解的详细内容,更多关于Python 爬取必应壁纸的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
从Python程序中访问Java类的简单示例
Apr 20 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
python遍历序列enumerate函数浅析
Oct 17 Python
django模板语法学习之include示例详解
Dec 17 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
浅谈python可视化包Bokeh
Feb 07 Python
pybind11和numpy进行交互的方法
Jul 04 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
Python实现转换图片背景颜色代码
Apr 30 Python
Python实现动态循环输出文字功能
May 07 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
Python unittest工作原理和使用过程解析
Feb 24 #Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 #Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 #Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 #Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 #Python
sklearn+python:线性回归案例
Feb 24 #Python
深入理解Tensorflow中的masking和padding
Feb 24 #Python
You might like
解析PHP实现下载文件的两种方法
2013/07/05 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
php阳历转农历优化版
2016/08/08 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
详解Python函数作用域的LEGB顺序
2016/05/14 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python实现可逆简单的加密算法
2019/03/22 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python解释器spython使用及原理解析
2019/08/24 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
五种Python转义表示法
2020/11/27 Python
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
学历公证书范本
2014/04/09 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
Netty分布式客户端处理接入事件handle源码解析
2022/03/25 Java/Android