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的@property装饰器的用法
Apr 28 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
安装Python的教程-Windows
Jul 22 Python
儿童学习python的一些小技巧
May 27 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
PyQt5+requests实现车票查询工具
Jan 21 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
python实现录屏功能(亲测好用)
Mar 02 Python
一文读懂python Scrapy爬虫框架
Feb 24 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
Django项目如何正确配置日志(logging)
Apr 29 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
APMServ使用说明
2006/10/23 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
分析python切片原理和方法
2017/12/19 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
详解django自定义中间件处理
2018/11/21 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
业务员岗位职责范本
2013/12/15 职场文书
暑期实践思想汇报
2014/01/06 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
医院检讨书范文
2014/02/01 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
端午节活动总结
2014/08/26 职场文书
项目合作协议书
2014/09/23 职场文书
家长会开场白和结束语
2015/05/29 职场文书
员工聘用合同范本
2015/09/21 职场文书