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 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
Swift 3.0在集合类数据结构上的一些新变化总结
Jul 11 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
Python管理Windows服务小脚本
Mar 12 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
Python pathlib模块使用方法及实例解析
Oct 05 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
Pytorch使用shuffle打乱数据的操作
May 20 Python
python操作xlsx格式文件并读取
Jun 02 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
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
vue.js表格分页示例
2016/10/18 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
Javascript 严格模式use strict详解
2017/09/16 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
使用python实现kNN分类算法
2019/10/16 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
世界领先的电子书网站:eBooks.com(在线购买小说、非小说和教科书)
2019/03/30 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
党委班子剖析材料
2014/08/21 职场文书
试用期自我评价范文
2015/03/10 职场文书
勇敢的心观后感
2015/06/09 职场文书
学校运动会感想
2015/08/10 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python