当前位置: 首页 > news >正文

102302122许志安作业1

作业1

(1)爬取大学排名信息实验

import requests
from bs4 import BeautifulSoupurl = "http://www.shanghairanking.cn/rankings/bcur/2020"res = requests.get(url)
res.encoding = 'utf-8' soup = BeautifulSoup(res.text, "html.parser")
rows = soup.select("tbody tr")print("排名\t学校名称\t省市\t学校类型\t总分")for row in rows:cols = row.find_all("td")rank = cols[0].text.strip()name = cols[1].text.strip().split('\n')[0] province = cols[2].text.strip()type_ = cols[3].text.strip()score = cols[4].text.strip()print(f"{rank}\t{name}\t{province}\t{type_}\t{score}")

![屏幕截图 2025-10-26 122906](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 122906.png)

![屏幕截图 2025-10-26 115317](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 115317.png)

(2)心得体会

该实验核心在于:找到所指向数据在文本页下对应的表格位置,提取表格数据并遍历每行排版输出,考验了我们对requests , BeautifulSoup的使用。

作业2

(1)爬取商品名称和价格实验

import urllib3, reurl = "https://search.bl.com/k-%25E4%25B9%25A6%25E5%258C%2585.html"
html = urllib3.PoolManager().request("GET", url).data.decode("utf-8", "ignore")names = re.findall(r'<div class="pro-img">.*?<img[^>]+(?:alt|title)="(.*?)"', html, re.S)
prices = re.findall(r'<div class="pro-money">.*?<div class="money-fl">¥\s*([\d\.]+)</div>', html, re.S)for n, p in zip(names, prices):print(f"商品名: {n.strip()} | 价格: ¥{p.strip()}")

![屏幕截图 2025-10-26 112707](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 112707.png)

![屏幕截图 2025-10-26 115527](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 115527.png)

(2)心得体会

本次实验的核心在于:写出正确的正则表达式从网页源代码中提取商品名称和价格,考验了我们书写正则表达式的能力。

作业3

(1)爬取并下载图片实验

import urllib.request, re, oshtml = urllib.request.urlopen("https://news.fzu.edu.cn/yxfd.htm").read().decode("utf-8")
urls = re.findall(r'src=["\']/?(__local/.*?\.(?:jpe?g|png))["\']', html, re.I)[:9]if not urls: exit("未匹配到任何图片链接")
print(f"共找到 {len(urls)} 张图片,准备下载")os.makedirs("images", exist_ok=True)
for i, u in enumerate(urls, 1):full = "https://news.fzu.edu.cn/" + u.lstrip("/")path = f"images/img_{i}{os.path.splitext(full)[1]}"print(f"下载第 {i} 张: {full} -> {path}")try: urllib.request.urlretrieve(full, path)except Exception as e: print("下载失败:", e)print("下载完成!图片已保存在 ./images 文件夹中")

![屏幕截图 2025-10-26 123301](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 123301.png)

![屏幕截图 2025-10-26 115657](C:\Users\ASUS\Pictures\Screenshots\屏幕截图 2025-10-26 115657.png)

(2)心得体会

该实验的核心同样是使用正确的正则表达式匹配对应网页图片链接,其中有许多多余图片,要能匹配到关键,写出合适的正则表达式,并下载图片,考验我们的书写应变能力。

http://www.hskmm.com/?act=detail&tid=39347

相关文章:

  • 部分思维题
  • 别再踩坑!真正有效的最佳免费数据恢复软件,亲测能救
  • 壁纸网站
  • Titanic轮船人员生存率预测
  • 自行搭建了几个AIGC小站点,可结合接口平台使用
  • ARC201B Binary Knapsack
  • 单个神经元手写数字识别
  • LDC
  • 单层神经元手写数字识别
  • 完整教程:由JoyAgent观察AI Agent 发展
  • 人工智能初了解
  • 173天隧道技术篇防火墙组策略ICMPDNSSMB协议出网判断C2上线解决方案
  • TF1和TF2
  • Spark计算引擎
  • Hive数据仓库工具
  • Hbase分布式数据库
  • MapReduce并行计算框架
  • 什么是Java Lambda
  • Java Stream流
  • Java 类加载器
  • 面试总被追问k8s调度器工作原理, 收藏 == 学废
  • Java 虚拟机
  • Java 反射
  • Java 语法糖
  • Java 代理
  • 纸笔群群友命题乱做
  • 本人对KMP如何匹配到所有结果的算法存在一些疑惑...
  • 字符与Java国际化编程
  • 进程与线程
  • 解决 Windows 下 Claude 通过 cmd/powershell 运行出错失去响应的问题