编辑代码

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
# 可以先打开网址,分析一下,想一想应该如何爬取哦!故宫博物院壁纸网址:https://www.dpm.org.cn/lights/royal/p/1.html
# 注意:本程序可能由于网页更新出现报错,不要着急,后面的课程会学习如何解决哦!
# 第一步:补充第15行代码,爬取多页内容
# 第二步:补充第30行代码,请求壁纸对应网页(img_url),获取图片二进制数据
# 第三步:补充第34行代码,写入图片二进制数据,保存壁纸图片
import requests
import bs4
from xes.tool import *
# 可以修改下一行代码中的参数wallpaper,修改成自己的文件夹
path = xopen("wallpaper")

# 多页爬取
for i in range(1, 4):
    #作答区域1:补充下一行代码,爬取多页内容(在此处 ↓ 补充)
    url = "https://www.dpm.org.cn/lights/royal/p/"+str(i)+".html"
    response = requests.get(url)
    response.encoding = "UTF-8"
    # 选取数据
    soup = bs4.BeautifulSoup(response.text, "lxml")
    image = soup.find_all(name="div", class_="pic")
    # 展示结果
    for n in image:
        p = n.a.img   # 获取图片标签,并存到变量p中,具体方法下一节课会学习哦!
        print(p["title"])  # 取出p标签中的title属性
        img_name = p["title"]  # 壁纸名称 
        print(p["src"])
        img_url = p["src"]  # 壁纸链接
        
        #作答区域2:补充下一行代码,请求壁纸对应网页(img_url),获取图片二进制数据
        pic = requests.get(img_url).content
        file_name = path + img_name + ".jpg"
        with open(file_name, "wb") as file:
            #作答区域3:补充下一行代码,写入图片二进制数据,保存壁纸图片
            file.write(pic)




# # 高清版壁纸(1920*1080)
# # 说明:刚刚的程序与课程中类似,可以爬取标清版的壁纸,下面的程序可以下载高清版,方法类似
# #       但是中间需要添加一次请求高清壁纸网页的步骤哦!
# for i in range(1, 4):
#     url = "https://www.dpm.org.cn/lights/royal/p/"+ str(i) +".html"
#     response = requests.get(url)
#     response.encoding = "UTF-8"
#     # 选取数据
#     soup = bs4.BeautifulSoup(response.text, "lxml")
#     image = soup.find_all(name="div", class_="pic")
#     # 展示结果
#     for n in image:
#         print(n.a.img["title"])
#         img_name = n.a.img["title"]  # 壁纸名称
#         print(n.a["href"])  # 高清版壁纸网页
#         # 得到高清版壁纸网页链接
#         url1 = "https://www.dpm.org.cn" + n.a["href"]
#         # 请求高清版网页
#         response_img = requests.get(url1)
#         soup_img = bs4.BeautifulSoup(response_img.text, "lxml")
#         # 获取高清版中的img标签
#         data = soup_img.find_all(name="img")[0]
#         # 得到高清版壁纸图片的链接
#         img_url = data["src"]
#         # 保存图片
#         pic = requests.get(img_url).content
#         file_name = path + img_name + ".jpg"
#         with open(file_name, "wb") as file:
#             file.write(pic)