数据采集与融合技术实践第一次作业

news/2025/10/26 21:19:58/文章来源:https://www.cnblogs.com/bishanbu/p/19167424

作业1

## 代码以及相关图片

点击查看代码
import requests
from bs4 import BeautifulSoup#原本想把第一个页面设为base_url,之后以此为根据跳转其他页面的(获取排名31之后的学校信息),可惜未能做到
base_url = 'http://www.shanghairanking.cn/rankings/bcur/2020'
response = requests.get(base_url)#用get方法发出请求
response.encoding = 'utf-8'#此处是为了避免乱码现象# 把页面信息变成bs4对象
page = BeautifulSoup(response.text, 'html.parser')
#爬取学校排名所在的表格,并存储在table中
table = page.find('table', class_='rk-table')
tbody = table.find('tbody')
#取出表格中每一行的信息,存储在trs中
trs = tbody.find_all('tr')result = []
result_num = 0
#遍历表格的每一行
for tr in trs:result.append([])j = 1i = 1#遍历一行中每一个单元格for td in tr.find_all('td'):if j > 5:breakif j == 1:ranking = 'ranking top' + str(i)i += 1#把排名号码存储在结果列表里result[result_num].append(tr.find('div', class_='ranking').text.strip())elif j == 2:#把学校名称存储在结果列表里result[result_num].append(tr.find('span', class_='name-cn').text.strip())elif j == 3:# 把学校所在地存储在结果列表里result[result_num].append(td.text.strip())elif j == 4:# 把学校类型存储在结果列表里result[result_num].append(td.text.strip())elif j == 5:#把学校总分存储在结果列表里result[result_num].append(td.text.strip())j += 1result_num += 1#通过列表的方式输出结果
for num in result:print(num)
代码运行截图:

image

## 作业心得体会
通过这次作业我了解到了很多前端的知识,明白了网上那么多好看的网页是怎么制作出来的,以及我还学到了爬取网页信息最基本的知识,明白了bs4模块的工作原理。

作业2

## 代码以及相关图片

点击查看代码
import requests
import re
#这里是当当网的url
url = "https://search.dangdang.com/?key=%CA%E9%B0%FC&act=input"headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0'
}
resp = requests.get(url,headers=headers)#为正则表达式创建一个容器
pattern = re.compile(r'<li ddt-pit.*?<a title="(?P<name>.*?)".*?<span class="price_n">(?P<price>.*?)</span>',re.S)
#html是网页源代码
html = resp.text
#创建一个迭代器
result = re.finditer(pattern,html)
#创建一个名为goods的列表,用于存放商品的名称和对应的价格
goods = []
i = 0
#遍历迭代器,并把爬取到的商品信息放进goods列表里
for match in result:goods.append([match.group('name')])goods[i].append(match.group('price')[5:])i += 1
#一行行地输出商品信息
for good in goods:print(good)

代码输出结果:
image

## 作业心得体会
通过这一次的作业,我学到了re模块和正则表达式的用法,并且可以独立用正则表达式爬取网页信息,但是通过这次作业我发现很多网站的反爬机制真的很强大,很难爬取到,因此我们要学习的爬虫相关知识还是有很多。

作业3

## 代码以及相关图片

点击查看代码
import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin# 导入福州大学新闻网相关网页的url
url = "https://news.fzu.edu.cn/yxfd.htm"
# 设置图片保存目录
save_dir = "homework1.3.images"# 判断图片保存目录是否存在,若不存在就要自己创建
if not os.path.exists(save_dir):os.makedirs(save_dir)resp = requests.get(url) # 网页未设置反爬手段,因此不需要headers
resp.encoding = 'utf-8' # 此处的编码格式若不设置会出现乱码
html = resp.text # html中保存网页代码
# print(html) # 这里把try的步骤改成了直接测试
page = BeautifulSoup(html, 'html.parser')   #把网页内容转换成bs4对象imgs = page.find_all('img') # 获取页面中所有的图片,并存在imgs中count = 0
# 一个个遍历爬取到的图片
for img in imgs:img_src = img.get('src') #获取图片连接if not img_src: # 若遇到没有连接的图片直接跳过continue# 把相对路径转换为绝对路径full_img_src = urljoin(url, img_src)# 检查图片格式是否为JPEG、JPG或PNG,如果不是直接跳过if not (full_img_src.lower().endswith(('.jpg', '.jpeg', '.png'))):continue# 开始下载图片img_response = requests.get(full_img_src, timeout=10)# 获取图片扩展名if full_img_src.lower().endswith('.png'):ext = '.png'else:  # jpg或jpegext = '.jpg'# 保存图片img_name = f"image_{count}{ext}"img_path = os.path.join(save_dir, img_name)count += 1 # 计算总共保存了多少张图片with open(img_path, 'wb') as f:f.write(img_response.content)print(f"已保存: {img_name} ({full_img_src})")print(f'总共保存了{count}张图片')

运行结果:
image

## 作业心得体会
通过这一次的作业我学会了从网上爬取图片的方法以及原理。

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

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

相关文章

2025.10.26 闲话-单位根反演

2025.10.26 闲话-单位根反演起因正在和 zxk 探讨 k 叉 bostan-mori。 jijidawang:直接单位根反演。所以就来学习单位根反演了。 Part.1 主体 首先引入这样一个问题: 求: \[\sum_{i=0}^{\lfloor\frac{n}{2}\rfloor}{…

题解:B4205 [常州市赛 2021] 特殊字符

题解:B4205 [常州市赛 2021] 特殊字符 前言 题目传送门 思路分析 因为数据范围较大,所以直接暴力构建字符串不仅仅会超时,还会爆空间,所以我们考虑模拟、跳过构建字符串,直接给出答案 我们对于每个特殊字符,从左…

郭念海 - coder

郭念海(1891年-1931年),男,湖北省麻城市乘马岗人。 生前为乡农协会员,于1928年参加革命活动,1931年在肃反中被杀害,1987年10月1日给予平反昭雪。 恐惧源于无知,代码改变世界

软考五

软考五Posted on 2025-10-26 21:10 心默默言 阅读(0) 评论(0) 收藏 举报1. 计算机网络的分类

ECC 学习笔记

0. 前置知识 给定集合 \(S\) 和运算 \(\circ\),若 \(\circ\) 对 \(S\) 封闭,且有单位元(\(a \circ e = a\))、逆元(\(a \circ a^{-1} = e\))、结合律、交换律,则称 \(S\) 对 \(\circ\) 构成 Abelian 群。一个大…

[TOOL] Node.js: JavaScript运行环境安装

[TOOL] Node.js: JavaScript运行环境安装$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");官方文档:https://nodejs.org/en/docs/ Grok生成(2025年10月26日…

转化漏斗(随笔)

背景介绍 该项目是一个用于广告平台投流的WEB项目,用户路径相对清晰,对于转化漏斗来说是一个很好的入门实战项目。备注:本文中的数据已经经过修改和混淆 数据分析目标 核心指标:新增ROI>1 数据指标拆解 用户的行为…

20231326《密码系统设计》第五周预习报告

20231326《密码系统设计》第五周预习报告 目录20231326《密码系统设计》第五周预习报告学习内容《Windows C/C++加密解密实战》第 9 章AI对学习内容的总结1. CSP(Cryptographic Service Provider)2. CryptoAPI 简明概…

2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺/高端定制/全屋整装,烘干/白胚/木蜡油保养工艺深度解析

2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺/高端定制/全屋整装,烘干/白胚/木蜡油保养工艺深度解析 实木家具作为家居领域的高端品类,其价值不仅体现在材质本身,更在于工艺传承与技术创…

2025年摘星搜荐怎么样:全面评测摘星AI的功能与优势

文章摘要 本文深入分析2025年摘星搜荐(摘星AI)的核心功能、优势、用户评价及未来趋势,帮助用户了解这款人工智能工具的性价比和市场需求。基于真实数据和用户反馈,突出摘星AI在AI领域的先进性和易用性,为决策者提…

2025年工业清洗剂厂家推荐排行榜,水洗/水基/碳氢/铝材/超声波/金属/真空/除油/防锈清洗剂源头厂家精选

2025年工业清洗剂厂家推荐排行榜,水洗/水基/碳氢/铝材/超声波/金属/真空/除油/防锈清洗剂源头厂家精选 随着制造业向高质量、绿色化方向转型升级,工业清洗剂作为生产过程中不可或缺的辅助材料,其技术水平和环保性能…

GoroSort

水讨论区水到这么一道题P13364 一道得出结论并不困难的 Ad-hoc,不过证明还挺困难的 题意:给定一个排列,每次可以选择任意一个子集随机重排,求最优方案下,将排列变为有序的期望操作次数。 充分发扬人类智慧,每次选…

Windows11文件夹右键-删除多余选项-加快打开速度

前言全局说明右键上常用的快捷键很方便,但是有些软件随意添加的右键选项,导致右键菜单变长后,加载还慢,用着不方便。这里就手动删除修改注册表,可能会导致系统无法启动或其他问题,请慎重操作 !!! 修改注册表,…

2025年店铺装修设计施工一体化服务推荐榜:覆盖服装店/餐厅/商场/健身房/美容院等全行业专业装修公司精选

2025年店铺装修设计施工一体化服务推荐榜:覆盖服装店/餐厅/商场/健身房/美容院等全行业专业装修公司精选 在商业空间竞争日益激烈的今天,店铺装修已不再是简单的美化工程,而是直接影响品牌形象、顾客体验和经营效益…

于听讲中积淀,在实践中成长

读罢三篇关于学习方法的文章,我对“如何有效提升自我”有了清晰认知:认真听讲是能力筑基的起点,“做中学”的刻意实践是能力进阶的关键,二者结合方能实现高效成长。 Scalers在文中打破了我对“听讲”的认知误区——…

应用安全 --- xx_vm 插件

应用安全 --- xx_vm 插件https://wwzb.lanzouw.com/iACcA39faara

2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑深度解读

2025 年 10 月系统门窗十大品牌榜单由中国建筑金属结构协会、全国工商联家具装饰业商会联合发布,本次评选突破传统单一性能评价模式,构建 “技术研发实力 + 市场口碑” 双维度综合评估体系。技术维度以《铝合金门窗》…

2025年TPU厂家权威推荐榜单:TPU加纤,TPU改性生产,专业定制与技术创新实力解析

2025年TPU厂家权威推荐榜单:TPU加纤,TPU改性生产,专业定制与技术创新实力解析 热塑性聚氨酯弹性体(TPU)作为高分子材料领域的重要分支,近年来在工业应用中的需求持续增长。随着汽车轻量化、智能穿戴设备、医疗器…

医疗智能体的工艺演进与路径分析:从多模态大模型到高阶综合智能体

医疗智能体的工艺演进与路径分析:从多模态大模型到高阶综合智能体2025-10-26 20:47 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !i…