首页 > 其他分享 >使用py一键获取所有必应壁纸图片

使用py一键获取所有必应壁纸图片

时间:2022-12-28 17:38:59浏览次数:64  
标签:url self py 一键 path print 壁纸 page

Bing壁纸一直以来都是WIN7系统里的不可或缺的一道亮丽风景线,其高清、唯美、微妙镜头下的风景一直有着专业、不可比拟的称赞。

Bing壁纸汇集了山水风景壁纸里各式各样的精华,再加上其高清的选材和独特的拍摄视角,给人一种清新、自然并以强烈的视觉刺激。而且在这里您将看到世间最美丽最恢宏的自然画卷,分分钟带给你一场场精彩的视觉盛宴。

今天,小编就为大家带来Bing壁纸专题的爬虫。首先让我们输入网址:

​https://bing.ioliu.cn/,​

然后我们分析链接的规律:

​https://bing.ioliu.cn/?p=2​

​https://bing.ioliu.cn/?p=3​

……

​https://bing.ioliu.cn/?p=128​

找到链接的规律后,就让我们来查看元素的获取。同样F12审查元素,元素审查分析如下:

使用py一键获取所有必应壁纸图片_必应

接下来让我们进入编码环节:

import requests
import lxml.etree
from time import sleep
import os


class Biying(object):


def __init__(self,req_url):
self.headers = {"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
self.req_url = req_url


#获取页面总数
def getpage(self):
#1 请求数据path
response = requests.get(self.req_url, headers=self.headers)
#2 整理成xml文档
xml = lxml.etree.HTML(response.text)
#3 抽取想要的element 以下是获取类名为page的div标签下的span标签体内容 获取到的内容为:1 / 99
page = xml.xpath('//div[@class="page"]/span')#<div class="page"><a href="/">上一页</a><span>1 / 99</span><a href="/?p=2">下一页</a></div>
#4 通过对字符串分割操作来获取必应壁纸网页页数
str=page[0].text.split(' ')[2]
return (int)(str)

#遍历页面
def Eachpages(self,page,pages,path):
i=page
while i<=pages:
temp=self.req_url+"?p={i}".format(i=i)
print("第{page}页开始下载,当前页url:{url}".format(page=i,url=temp))
count=self.EveryImage(temp,path)
print("第{page}页已下载完成".format(page=i))
i=i+1
if (count == 0):
print("网络出现错误,第{page}页重新下载")
i=i-1
os.system('cls')


def EveryImage(self,url,path):
response = requests.get(url, headers=self.headers)
xml = lxml.etree.HTML(response.text)
imgname = xml.xpath('//div[@class="description"]/h3')
imgurl = xml.xpath('//div[@class="card progressive"]/img')
print("当前页面有{}张壁纸".format(len(imgurl)))
count = 0
for n, u in zip(imgname, imgurl):
name = n.text.split(' ')[0]
img_url = u.xpath('@src')[0]
count += 1
print("第{}张壁纸 描述:{} 壁纸url:{}".format(count,name,url))
self.download(name,img_url,path)
return count


def exit_info(self,show_info):
print(show_info)
for i in range(5, 0, -1):
print("{sec}秒后退出".format(sec=i))
sleep(1)

def download(self,name,url,path):
response = requests.get(url, headers=self.headers) # 反爬虫,模拟浏览器提交
NAME=""
for i in range(len(name)):
if name[i] not in '/\*:"?<>|':
NAME+=name[i]
isExists = os.path.exists(path)
# 判断结果
if not isExists:
# 如果不存在则创建目录 创建目录操作函数
os.makedirs(path)
filename = path +'\\'+ NAME + ".jpg"
with open(filename, "wb") as f:
f.write(response.content)
f.close()

if __name__ == '__main__':
url="https://bing.ioliu.cn/" #壁纸网页url
By_spider = Biying(url)
pages = By_spider.getpage() #获取页面总数,并且转换为int类型
print("壁纸总页数:{pages}".format(pages=pages)) #打印必应壁纸页数
path = input("输入图片存储路径:")
page=(int)(input("从第几页开始下载(1-{}):".format(pages)))
if page<=0 or page>pages:
By_spider.exit_info("输入页数不合规范,请重新输入")
else:
By_spider.Eachpages(page,pages,path)
By_spider.exit_info("下载完成")

右击运行代码,即可执行,输入想要下载到哪个文件夹内,没有对应文件夹随便输入一个就会自动生成 ,然后输入你想要下载的页数,即从哪页开始下载。如下图即代表程序运行成功。

使用py一键获取所有必应壁纸图片_xml_02


标签:url,self,py,一键,path,print,壁纸,page
From: https://blog.51cto.com/u_15924937/5975821

相关文章

  • python版抖音短视频无水印下载
    如今,各类短视频应用已融入不少人的日常生活。短短几个镜头,可仰望浩瀚星空,也可俯瞰市井烟火;能近距离观察社会肌理,也能深度透视时代景深。点开视频,领略城乡风貌,了解风土人情,足......
  • 利用python爬取百思不得姐demo实例
    作为一个刚接触爬虫的小白,在学习了一定的语法后,第一个目标就是找一个适合初学者的网站来小试牛刀。一般来讲都会选择一个难度系数比较低的网站来进行爬取,这样不仅有助于我们......
  • 利用py实现邮件群发功能——办公必备利器
    作为一个不负责任的公号运营者,最近一直忙着搬砖,也没有太多时间来更新公众号,小编目前还是一个在惨遭社会蹂躏的低级码农,随随便便的一个高难度技术问题,仿佛就成了压死我的最后......
  • 利用py爬取生日的那天哈勃望远镜拍到了什么?
    于1990年4月发射升空的哈勃太空望远镜迎来了升空30周年纪念。为此,美国宇航局(NASA)近日在其官网上发起一项活动——“哈勃望远镜在你生日那天看到了什么?”NASA邀请大家搜索自......
  • 【Python 库】bs4的使用
    和lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取HTML/XML数据。BeautifulSoup,是一个第三方的库,所以使用之前需要安装,安装方法,输入cmd,调出......
  • python运行环境以及编辑器介绍
    Hello呀,EveryOne,在上次更新了第一篇的公众号推文后,小编也如约的和大家玩起了消失,但是工作还是要进行的,这不又乖乖的回来码字了,废话不再多说,今个带大家来敲下python编写的第......
  • Python爬取意林杂志所有期刊文章
    可能很多人对这个意林杂志比较陌生,但是对于小编来说,那可是满满的回忆。记得我们上中学那时候读过的意林,那可是一本接着一本,其中有很多令人感动的故事,一直被温暖,被治愈。接下......
  • python爬取公众号链接里面的图片
    话不多说,步入今天文章的分享内容,今天给大家带来的是~~爬取微信公众号文章里面的图片。爬虫代码:#coding:utf-8#__auth__="maiz"#__date__="2021/3/27"importosimport......
  • Python中使用xpath一键获取各国国旗
    国旗是一个国家的主权意识不断增强后必然的产物,国旗是国家的一种标志性旗帜,是国家的象征。代表着一个国家的主权和民族的尊严。每个国家的国旗都由特有的颜色和图案构成,这些......
  • py爬取当当网前500畅销书,送给书荒的你
    最近和朋友聊天,讨论到读书的问题,说是读书到底有什么用?我半开玩笑的给他讲了一个故事。男孩将女孩送到宿舍楼下,看着一路上两人始终保持着的那一步的距离,男孩终于鼓起勇气,说道......