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正则表达式的使用范例详解
Aug 08 Python
浅析Python中的多重继承
Apr 28 Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
json跨域调用python的方法详解
Jan 11 Python
Python实现定时任务
Feb 08 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
Python数据持久化存储实现方法分析
Dec 21 Python
keras多显卡训练方式
Jun 10 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的单引号和双引号 字符串效率
2009/05/27 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
[01:03:59]2018DOTA2亚洲邀请赛3月30日 小组赛B组VGJ.T VS Secret
2018/03/31 DOTA
python操作xml文件详细介绍
2014/06/09 Python
Python异常学习笔记
2015/02/03 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Python的形参和实参使用方式
2019/12/24 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
2020/06/24 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
收银出纳员岗位职责
2014/02/23 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
铁路安全事故反思
2014/04/26 职场文书
社区党建工作方案
2014/06/10 职场文书
社保委托书怎么写
2014/08/02 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python