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实现汉诺塔递归算法经典案例
Mar 01 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
python 对字典按照value进行排序的方法
May 09 Python
python3实现的zip格式压缩文件夹操作示例
Aug 17 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
matplotlib quiver箭图绘制案例
Apr 17 Python
浅谈Django前端后端值传递问题
Jul 15 Python
Python如何对齐字符串
Jul 30 Python
django教程如何自学
Jul 31 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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+MySQL的聊天室设计
2006/10/09 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
jquery each()源代码
2011/02/14 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
javascript实现画板功能
2020/04/12 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Python decimal模块使用方法详解
2020/06/08 Python
python下载的库包存放路径
2020/07/27 Python
python -v 报错问题的解决方法
2020/09/15 Python
阿巴庭院:Abba Patio
2019/06/18 全球购物
毕业生自我鉴定
2013/11/05 职场文书
采购内勤岗位职责
2013/12/10 职场文书
往来会计岗位职责
2013/12/19 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
简历里的自我评价
2014/01/31 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
投资合作意向书范本
2015/05/08 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技