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使用xlrd模块读写Excel文件的方法
May 06 Python
Python对象转JSON字符串的方法
Apr 27 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
Python切片工具pillow用法示例
Mar 30 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
python对文件的操作方法汇总
Feb 28 Python
Python实现仿射密码的思路详解
Apr 23 Python
Python实现删除某列中含有空值的行的示例代码
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连接MongoDB示例代码
2012/09/06 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
js实现小时钟效果
2020/03/25 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
详解python变量与数据类型
2020/08/25 Python
Python collections模块的使用方法
2020/10/09 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
同学聚会主持词
2014/03/18 职场文书
校长四风对照检查材料
2014/09/27 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
农业项目合作意向书
2015/05/08 职场文书
python实现高效的遗传算法
2021/04/07 Python
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python