壁纸官方网址:
https://yys.163.com/media/picture.html
导库
import requests
import re
from urllib import error
import urllib.request
request解析网址得到了html代码
url = 'https://yys.163.com/media/picture.html'
data = requests.get(url)
接下来用正则匹配:
这里这里
这里我们看到一共有四种分辨率的壁纸我们取最分辨率最高的壁纸,观察这些网址之间的共同之处进行正则匹配
regex = re.compile('.*?href="(.*?)2732x2048.jpg"')
urls=regex.findall(data.text)
正则表达式嘛,对于小白的我来说.*?就完事了,哈哈。
通过这段代码我们得到了壁纸网址的列表(其实不是完整的网址,需要加上 2732x2048.jpg")
获取完网址之后就开始下载图片啦!
''' 封装成函数方便使用'''
def download(url,index):
try:
response = urllib.request.urlopen(url)
yys = response.read()
with open('壁纸' + str(index) + '.jpg', 'wb')as f:
f.write(yys)
except error.HTTPError as e:
print("图片"+str(index)+"不存在")
因为有些图片的网址请求后会出现404NOT FOUND,可能是网站服务器那边挂载的资源出了点问题。所以加了个异常处理。
i=0
for lis in urls:
li = lis+'2732x2048.jpg'
i+=1
download(li,i)
下载完成,以后就可以看到喜欢的壁纸啦!