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中使用OpenCV进行人脸检测的例子
Apr 18 Python
Python中使用partial改变方法默认参数实例
Apr 28 Python
Python网站验证码识别
Jan 25 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
python 使用shutil复制图片的例子
Dec 13 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHP 字符串分割和比较
2009/10/06 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
php实现的CSS更新类实例
2014/09/22 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
python实现点对点聊天程序
2018/07/28 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
525心理活动总结
2014/07/04 职场文书
债务纠纷委托书
2014/08/30 职场文书
六年级学生评语大全
2014/12/26 职场文书
清明节寄语2015
2015/03/23 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
Elasticsearch 批量操作
2022/04/19 Python