[title]前言[/title]

众所周知,Bing是做壁纸的hh..必应搜索的背景图质量一直很不错,很适合做电脑或者iPad的壁纸,每天会更新一张。于是乎,有人搜集了从bing上线这个功能以来的绝大部分图片,并做成了网站,奈何我想天天换壁纸呢?来写个简单的爬虫吧。

[title]Python3代码[/title]


[cc lang="python"]
import requests
import re
import os

'''获取网页源码函数
'''
def getSrc(page):
try: # 容错处理,连接错误则返回空文本继续往下走
url = "http://bing.plmeizi.com/?page=" + str(page)
req = requests.get(url)
return req.text
except ConnectionError:
return ""

'''主函数
'''
def main():
# 循环页码,从第1页到第133页
for pageNow in range(1,134):
# 清空终端
os.system("clear")
sourceCode = getSrc(pageNow)
# 从源码获取图片地址,放入列表
reg = r'img src="(.*?)-listpic'
picList = re.findall(reg,sourceCode)
# 从源码获取图片描述,放入列表
reg = r'alt="(.*?)"'
nameList = re.findall(reg,sourceCode)
# 如果获取到的图片地址数量和描述数量一致且不为0表示获取正确
print("正在下载第{}页,共{}张".format(pageNow,len(nameList)))
if len(nameList) == len(picList) != 0:
for i in range(len(nameList)):
# 下载图片
img = requests.get(picList[i]).content
print("正在下载第{}张".format(i+1))
try: # 容错处理,保存图片
filePath = "./pic/" + nameList[i].replace(" ","").replace("/","-").replace("©","") + ".jpg"
with open(filePath,"wb") as f:
f.write(img)
if os.path.getsize(filePath)/1024 < 50:
os.remove(filePath)
except FileNotFoundError:
print(nameList[i],"名称存在非法字符,无法保存")
except IOError:
print(nameList[i],"读写异常,保存失败")

'''对整体进行容错处理
'''
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print("用户退出")
exit()
[/cc]

先在本例子.py文件相同目录下,新建好一个pic目录,剩下的,就让他自己来吧

Last modification:February 17th, 2021 at 09:11 pm
如果觉得我的文章对你有用,请随意赞赏