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生成不重复随机值的方法
May 11 Python
Python验证企业工商注册码
Oct 25 Python
python 的列表遍历删除实现代码
Apr 12 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
Nov 02 Python
基于python神经卷积网络的人脸识别
May 24 Python
Python列表生成式与生成器操作示例
Aug 01 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python 穷举指定长度的密码例子
Apr 02 Python
python db类用法说明
Jul 07 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 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 采集程序原理分析篇
2010/03/05 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Prototype使用指南之selector.js说明
2008/10/26 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python正规则表达式学习指南
2016/08/02 Python
python select.select模块通信全过程解析
2017/09/20 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
用Python实现读写锁的示例代码
2018/11/05 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
python实现简单的购物程序代码实例
2020/03/03 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
中学生操行评语
2014/04/24 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
甲午风云观后感
2015/06/02 职场文书
运动会加油稿30字
2015/07/21 职场文书
运动会加油稿
2015/07/22 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python