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的一些用法分享
Oct 07 Python
python用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
python模糊图片过滤的方法
Dec 14 Python
详解python校验SQL脚本命名规则
Mar 22 Python
python数据归一化及三种方法详解
Aug 06 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
使用Django搭建网站实现商品分页功能
May 22 Python
OpenCV 之按位运算举例解析
Jun 19 Python
python跨文件使用全局变量的实现
Nov 17 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中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
python with语句的原理与用法详解
2020/03/30 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
介绍java中初始化块的使用
2012/09/11 面试题
MYSQL基础面试题
2012/05/13 面试题
运动会跳远广播稿
2014/02/04 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python