蓝桥楼赛第30期-Python-第二天赛题 题解

楼赛 第30期 Python 模块大比拼

解析网页元素

目标

本次挑战,我们需要使用 Python 访问软科世界大学排行榜来获取首页 30 所学校的信息。

为避免目标网站的内容发生变化,我们使用保存之后的网页进行实验。

链接如下:

https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html

网页内容如图所示:
在这里插入图片描述

要求

  1. 脚本文件路径为 /home/project/rank2021.py。
  2. 目标网站为:https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html
  3. 请安装 BeautifulSoup 模块,确保脚本能够正常运行。
  4. 脚本需要实现对目标网站的抓取和解析,并打印输出。
    输出共 30 行。
  5. 最终运行效果如下:
    在这里插入图片描述

题解:

import re, requests
from lxml import html
etree = html.etree
daxue = []; guojia = []; paiming = [] ; zongfen = []
res = requests.get("https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html", )
res.encoding="utf-8"
tree = etree.HTML(res.text)
trs = tree.xpath('.//div [@class="logo"]/img')
for x in trs:
	cc = x.attrib.get('alt')
	daxue.append(cc)
trs = tree.xpath('.//tr')
for x in trs[1:]:
	l = x.xpath ('.//td' )
	z = l[2].text
	z = z.replace(" ", "").replace("\n", "")
	guojia.append(z)
	z = l[3].text
	z = z.replace(" ", "").replace ("\n", "")
	paiming.append(z)
	z = l[4].text
	z = z.replace(" ", "").replace ("\n", "")
	zongfen.append(z)
for x in range(1, 31):
	r = []
	r.append(str(x))
	r.append(daxue[x-1])
	r.append(guojia[x-1])
	r.append(paiming[x-1])
	r.append(zongfen[x-1])
	print(r)

特定年份日期处理

介绍

日期和时间是我们日常生活中非常重要的概念,它影响着我们生活的方方面面,所以对于日期和时间的正确处理就至关重要。

目标

本节挑战,我们需要编写一个脚本程序,打印输出 2021 年所有周六的日期。

要求

  1. 文件的路径为 /home/project/Saturday.py。
  2. 每行一个日期,打印输出的行数与2021 年周六的总个数相等。
  3. 最终效果图(部分截图)如下:
    在这里插入图片描述

题解:

from datetime import datetime, timedelta
start_time = "2021-01-01"
end_time = "2022-01-01"
std = datetime.strptime(start_time, "%Y-%m-%d")
etd = datetime.strptime(end_time, "%Y-%m-%d")
while std < etd:
	if std.isoweekday() == 6:
		print(std.strftime("%Y-%m-%d"))
	std = std + timedelta(days=1)

任意年份日期处理

介绍

日期和时间是我们日常生活中非常重要的概念,它影响着我们生活的方方面面,所以对于日期和时间的正确处理就至关重要。

目标

本节挑战,我们需要编写一个脚本程序,打印输出任意年份所有周日的日期。

蓝桥云课课程页: https://www.lanqiao.cn/courses/

要求

  1. 文件的路径为 /home/project/Sunday.py。
  2. 每行一个日期,打印输出的行数与对应年份周日的总个数相等。
  3. 最终效果图(部分截图)如下:

在这里插入图片描述
在这里插入图片描述

题解

from datetime import datetime, timedelta
import sys
year = int(sys.argv[1])
start_time = "%s-01-01" % (year,)
end_time = "%s-01-01" % (year + 1,)
std = datetime.strptime(start_time, "%Y-%m-%d")
end = datetime.strptime(end_time, "%Y-%m-%d")
while std < end:
	if std.isoweekday() == 7:
		print(std.strftime("%Y-%m-%d"))
	std = std + timedelta(days=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spaceack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值