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中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
在Django的session中使用User对象的方法
Jul 23 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
Python中一般处理中文的几种方法
Mar 06 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
使用python接入微信聊天机器人
Mar 31 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 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
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
最新教师自我评价分享
2013/11/12 职场文书
总经理秘书工作职责
2013/12/26 职场文书
团日活动总结书格式
2014/05/08 职场文书
关于建议书的格式范文
2014/05/20 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
工作失误检讨书
2015/01/26 职场文书
导师鉴定意见
2015/06/05 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript