102302105汪晓红作业1

news/2025/10/27 17:16:28/文章来源:https://www.cnblogs.com/xiaofennnn/p/19169644

作业1

作业①:用requests和BeautifulSoup库方法定向爬取给定网址 http://www.shanghairanking.cn/rankings/bcur/2020 的数据,屏幕打印爬取的大学排名信息。

代码与结果

核心代码:

点击查看代码
 #设置headers,模拟浏览器访问,防止被反爬headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}#设置真实网址,爬取指定页面url = "https://www.shanghairanking.cn/rankings/bcur/2020"try:response = requests.get(url, headers=headers)response.raise_for_status()#将编码设置为utf-8防止乱码response.encoding = 'utf-8' #用bs4解析网页的HTML文件soup = BeautifulSoup(response.text, 'html.parser')#检查可知,大学排名数据保存在rk-table表格中,搜索该表格table = soup.find('table', class_='rk-table')print("2020年中国大学排名")#设置打印表格的结构print("=" * 50)print(f"{'排名':<4} {'学校名称':<15} {'省份':<6} {'类型':<4} {'总分':<6}")print("-" * 50)#处理表格数据rows = table.find('tbody').find_all('tr')for row in rows:cells = row.find_all('td')# 提取前5列数据ranking = cells[0].get_text(strip=True)# 提取学校名称name_cn = cells[1].find('span', class_='name-cn')university_name = name_cn.get_text(strip=True) if name_cn else cells[1].get_text(strip=True)# 提取省市、类型和总分数据province = cells[2].get_text(strip=True)uni_type = cells[3].get_text(strip=True)total_score = cells[4].get_text(strip=True)print(f"{ranking:>2}   {university_name:<15} {province:<6} {uni_type:<4} {total_score:>6}")

输出结果:
image

作业心得:

打开该网站后,检查页面,筛选html文件,可以找到排名数据保存在rk-table表格中,解析该表格后打印出来即可

image

作业②:用requests和re库方法设计当当网“书包”商品比价

代码与结果

核心代码:

点击查看代码
try:#爬取当当网的书包商品信息url = "https://search.dangdang.com"# 获取页面,书包的第一页params = {'key': '书包', 'page': 1, 'pagesize': 10}response = requests.get(url, params=params, headers=headers, timeout=10)response.encoding = 'gb2312' #utf-8不可用,用gb2312html = response.text# 使用正则表达式提取商品信息all_pattern = re.compile(r'<span class="price_n">&yen;(\d+(?:\.\d+)?)</span>.+?<a title="(.+?)"', re.S)result = list(all_pattern.finditer(html))# 显示结果print("\n序号| 价格 | 商品名")print("-" * 80)products = []for i, r in enumerate(result, 1):price, title = r.groups()title = title.strip()print(f" {i} | {price} | \"{title}\"")products.append([title, price])

输出结果:

image

作业心得:

爬取当当网的商品信息,跳转到书包商品页面,检查,找到html文件中的价格和商品名称段,解析,使用正则表达式筛选,然后将商品名称和价格对应保存下来

image

作业③:爬取一个给定网页 https://news.fzu.edu.cn/yxfd.htm 的所有JPEG、JPG或PNG格式图片文件

代码与结果:

核心代码:

点击查看代码
# 步骤1: 设置请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}# 创建保存文件夹if not os.path.exists(folder):os.makedirs(folder)try:# 步骤2: 使用BeautifulSoup获取HTMLresponse = requests.get(url, headers=headers)response.raise_for_status()soup = BeautifulSoup(response.text, 'html.parser')html_content = str(soup)# 步骤3: 使用正则表达式查找图片img_urls = re.findall(r'<img[^>]+src="([^"]+\.(?:jpg|jpeg|png))"', html_content, re.I)print(f"找到 {len(img_urls)} 个图片链接")# 步骤4: 下载并保存count = 0for img_src in img_urls:# 拼接完整URLimg_url = urljoin(url, img_src)try:# 下载图片img_response = requests.get(img_url, headers=headers)img_response.raise_for_status()# 生成文件名filename = os.path.basename(img_src)if not filename:filename = f"image_{count+1}.jpg"filepath = os.path.join(folder, filename)# 保存图片with open(filepath, 'wb') as f:f.write(img_response.content)print(f"下载: {filename}")count += 1except Exception as e:print(f"下载失败: {img_url}")print(f"\n共下载 {count} 张图片到 '{folder}' 文件夹")except Exception as e:print(f"错误: {e}")

输出结果:
image

作业心得:

打开该网站后,检查页面,筛选html文件,可以找到第一个图片路径保存在img src中:
image
通过这个格式可以直接将图片筛选出来,同时用正则表达式筛选我们需要的图片格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【IEEE出版 | 重庆邮电大学主办 | 多届次、高层次】第六届人工智能与计算机工程国际学术会议(ICAICE 2025)

第六届人工智能与计算机工程国际学术会议(ICAICE 2025)将于2025年11月7-9日在重庆召开。【早鸟优惠、学生优惠、团队优惠、学生友好】 【重庆邮电大学主办|多届次、高层次】 第六届人工智能与计算机工程国际学术会议…

普通幂转下降幂

一个 trick。更新日志 2025/10/27:开工。概念 一个小 trick,利用第二类斯特林数将普通幂转化成下降幂。 思路 \[v^k=\sum_{i=0}^{\min(v,k)} {k\brace i}v^{\underline{i}}=\sum_{i=0}^{\min(v,k)}{k\brace i}\binom…

解决Java项目在复杂网络环境下访问外网不通的问题

解决Java项目在复杂网络环境下访问外网不通的问题 问题描述 在企业内部或本地开发环境中,Java项目经常遇到无法访问外网API或资源的情况。这是由于复杂的网络环境导致的,常见的网络限制包括:防火墙策略限制 代理服务…

私有2.4G无线对讲机方案:BLE芯片+PA芯片

在许多需要团队协作的场景中,清晰、即时、稳定的沟通是效率和安全的关键。传统对讲机笨重、频道申请麻烦;而手机通话则成本高、组群不便,在复杂环境中信号更是堪忧。在商场、仓库、景区等场景中,即时通信的稳定性与…

PyCharm 2024超详细下载安装教程(附安装包+激活教程)超详细图文步骤

目录一、PyCharm 2024 介绍二、PyCharm 2024安装包网盘下载三、PyCharm 2024 安装教程及激活教程1.解压PyCharm 2024安装包2.启动PyCharm 2024安装程序3.点下一步4.选PyCharm 2024安装位置5.勾选PyCharm 2024安装选项6…

发布会回顾|袋鼠云发布多模态数据中台,重构AI时代的数据底座

在AI全面渗透产业的浪潮中,数据平台的能力边界正在被重新定义。在2025袋鼠云秋季数智发布会上,袋鼠云重磅发布“数栈多模态数据中台”,标志着数栈正式完成从结构化数据中台向AI时代“全模态、全场景”的全面升级。袋…

Docker容器里面部署的Jenkins的Java17升级到21版本(无需删除之前容器,内部在线升级) - 攻城狮

发现Jenkins出现了如此提示: Java 17 end of life in JenkinsYou are running Jenkins on Java 17, support for which will end on or after Mar 31, 2026. Refer to the documentation for more details. 原因是ja…

布谷直播系统源码:高并发直播架构设计到搭建部署配置

在移动互联网时代,直播已成为内容传播、电商带货和社交互动的核心载体。面对动辄百万甚至千万级的瞬时用户涌入,如何构建一个稳定、流畅、可扩展的高并发直播系统,是每个技术团队必须攻克的堡垒。山东(泰安)布谷科技…

25.10.27联考题解

CF2110D 求最小值的问题可以考虑转化成二分答案然后判断合法性。于是先二分答案,然后发现判断合法性本质就是判断连通性,因为是 DAG 于是考虑拓扑排序维护到一个点的合法最大值即可。 B 考虑 \(k=0\) 怎么做?我们直…

医疗器械行业数字化破局:一体化平台正在淘汰多系统集成模式

当“系统集成”消耗企业30%IT预算的时代即将结束,一体化架构正重新定义医疗供应链数字化当“系统集成”消耗企业30%IT预算的时代即将结束,一体化架构正重新定义医疗供应链数字化 “我们使用了五套系统,CRM管客户、E…

报表知识

FORM frm_pf_status USING lt_status_name TYPE slis_t_extab. SET PF-STATUS PF_1000EXCLUDING lt_status_name. . ENDFORM. DATA: gt_excluding TYPE slis_t_extab. " ALV工具栏按钮排除表 CLEAR gt_excluding…

【IEEE出版 | 往届均已完成见刊检索 | 见刊检索稳定】第七届信息与计算机前沿术国际学术会议(ICFTIC 2025)

第七届信息与计算机前沿技术国际学术会议(ICFTIC 2025)将在中国青岛举行,会期是2025年12月5-7日。【中国石油大学(华东)、山东省智能人工学会、山东计算机学会主办】 【往届均已完成见刊检索,见刊检索稳定】 第七届信…

动态点分树

讲解动态点分树,附例题及代码。更新日志 2025/10/27:开工。概念 首先你应当会点分树。 动态点分树可以支持每次加一个叶子结点并动态维护点分树结构平衡的数据结构。 思路 利用替罪羊树的思想,考虑 \(\alpha\) 重构…

2025年隔热条厂家权威推荐榜:尼龙隔热条/PA66尼龙隔热条/建筑用隔热条/断桥铝门窗隔热条/幕墙隔热条/阳光房隔热条/国标隔热条精选

2025年隔热条厂家权威推荐榜:尼龙隔热条/PA66尼龙隔热条/建筑用隔热条/断桥铝门窗隔热条/幕墙隔热条/阳光房隔热条/国标隔热条精选 随着建筑节能要求的不断提高和绿色建筑理念的深入推广,隔热条作为建筑节能的关键材…

【前端效率工具】:告别右键另存,不到 50 行代码一键批量下载网页图片

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣先看效果:在素材网站一键批量保存所有图片废话不多说,直接上手! 项目结构image-downloader-extension ├── manifest.json # 扩展的"身份证"…

特殊符号的输入

特殊符号的输入符号 说明 Alt编码© 版权符号 Alt+0169 注册商标 Alt+0174™ 商标 Alt+0153• 项目符号 Alt+0149 正负号 Alt+0177 乘号 Alt+0215 除号 Alt+0247 度 Alt+0176… 省略号 Alt+0133√ 对勾 Alt+251≤ …

Luogu P3237 [HNOI2014] 米特运输 题解 [ 蓝 ] [ 树形 DP ] [ 哈希 ]

米特运输 不是很难,但是思路很巧妙的一道题。 手模样例,观察合法方案的性质,容易发现,只要有一个节点权值是固定的,那么整棵树所有节点的权值便也固定了。 而由于每个节点之间是倍数关系,因此我们需要一个基本单…

「Gym 104901F」Say Hello to the Future

题目大意 给定一个序列,定义其权值为划分序列的方案数,使得划分出来的每个区间 \([l, r]\) 有 \(\max_{i = l}^r {a_i} \leq r - l + 1\) 。对于每个 \(1 \leq i \leq n\) 求只将 \(a_i\) 修改为 \(1\) ,序列的权值…

渐进过程中大O与小o混用

在数学中,大O符号(O)和小o符号(o)都用于描述函数的渐进行为,但它们的含义和强度不同。在实际使用中,需要注意它们的定义和适用场景,以避免误用。 \(O(x)\) 表示一个函数的渐进上界。具体来说,如果存在正常数C…

Navicat 17 超详细保姆级下载安装教程:附激活工具使用步骤​

这篇教程给你讲的Navicat 17安装方法,从下载到激活一步不落,中间碰到问题也能帮你解决,跟着做保准能装好。​这篇教程给你讲的Navicat 17安装方法,从下载到激活一步不落,中间碰到问题也能帮你解决,跟着做保准能装…