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

022304105叶骋恺数据采集第一次作业

作业1

代码与运行结果

import urllib.request
from bs4 import BeautifulSoupurl ="http://www.shanghairanking.cn/rankings/bcur/2020"
response = urllib.request.urlopen(url, timeout=3)
html= response.read().decode('utf-8')
soup = BeautifulSoup(html, 'lxml')
name = soup.find_all(name='img',class_="univ-logo")
province = soup.find_all('td', attrs={"data-v-389300f0": True})
l=len(name)
print(f"{'排名':<6}{'学校名称':<16}{'省市':<8}{'学校类型':<10}{'总分'}")
for i in range(l):a=i+1b=name[i]['alt']c=province[i*6+2].text.strip()d=province[i*6+3].text.strip()e=province[i*6+4].text.strip()print(f"{a:<6}{b:<18}{c:<8}{d:<8}{e}")

作业心得

本次实验的核心是爬取一个动态加载数据的网页。在数据解析上,我使用了BeautifulSoup。然后通过查找名字为td,标签为data-v-389300f0的表格单元格提取数据。最后用格式化字符串f-string设置各列左对齐宽度,保证排版整齐。这个实验让我深刻体会到,爬虫开发的核心难点,往往不在于代码语法本身,而在于对目标网页 DOM 结构的深度理解

作业2

代码与运行结果

import urllib.request
from bs4 import BeautifulSoupurl = "https://search.dangdang.com/?key=%CA%E9%B0%FC&category_id=10009684#J_tab"
response = urllib.request.urlopen(url, timeout=3)
html= response.read().decode('gb2312')
soup = BeautifulSoup(html, 'lxml')
name = soup.find_all('a', attrs={'class': 'pic', 'name': 'itemlist-picture'})
price = soup.find_all(name='span',class_="price_n")
for i in range(len(name)):print(name[i]["title"], end='   ')print(price[i].text)

作业心得

本次实验以当当网图书搜索页为目标,通过urllib和BeautifulSoup实现了图书名称与价格的爬取。核心逻辑在于:利用find_all按标签属性定位数据 —— 通过class="pic"和name="itemlist-picture"筛选图书图片链接的标签,提取title属性获取书名;通过class="price_n"定位价格对应的标签,直接读取文本内容。循环中用end=' '控制输出格式,使书名与价格在同一行展示。这次实践让我深刻认识到,爬虫开发的关键挑战并非语法本身,而是对网页结构的精准拆解。例如,当当网页面中class="price_n"的唯一性设计,使其成为价格数据的稳定锚点;而name="itemlist-picture"这一非标准属性的使用,本质上是网站对数据抓取的隐性防御,需通过属性精确匹配突破。此外,编码格式的选择(非默认utf-8),体现了对目标网站字符集的针对性适配,这也是数据解析时容易被忽略的细节。

作业3

代码与运行结果

import urllib.request
from urllib.parse import urljoin
from bs4 import BeautifulSoup
import osurl ="https://news.fzu.edu.cn/yxfd.htm"
response = urllib.request.urlopen(url, timeout=3)
html= response.read().decode('utf-8')
soup = BeautifulSoup(html, 'lxml')
imgs = soup.find_all(name='img')
save_folder = "images"if not os.path.exists(save_folder):os.makedirs(save_folder)
for i in range(len((imgs))):img_src = imgs[i].get('src', '')full_img_url = urljoin(url, img_src)filename = full_img_url.split('/')[-1].split('?')[0]path = os.path.join(save_folder,filename)urllib.request.urlretrieve(full_img_url,path)

作业心得

本次实验实现了福州大学新闻网页面图片的批量下载,核心逻辑围绕 “图片链接解析 - URL 标准化 - 本地存储” 展开。代码通过BeautifulSoup提取所有标签的src属性,利用urljoin将相对路径转换为绝对 URL,再通过urlretrieve按文件名保存至指定文件夹。实践中最深刻的体会是:网络资源爬取的难点不仅在于数据提取,更在于 “URL 标准化” 与 “文件系统适配” 的细节处理。此外,urljoin的应用解决了 “相对路径无法直接访问” 的核心问题,这让我意识到:在跨页面资源爬取时,URL解析器是比标签定位更基础的工具。

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

相关文章:

  • 智能预加载:基于用户行为和路由预测
  • 函数简单传入参数的汇编分析 - 指南
  • 数据类型转换以及内存溢出
  • 美股数据接口对接指南:快速获取指数实时行情
  • 25-deepin-linux-wsl-nginx-installation
  • 2025国际冷链运输推荐腾翼搏时,专业温控保障生物药品安全!
  • 鸿蒙设备开发-gpio控制
  • AI Agent和Agentic AI
  • http基础
  • Java基础语法与面向对象
  • Java中java.util.Random的用法
  • 2025年磨粉机厂家推荐排行榜,雷蒙磨粉机,环辊磨粉机,摆式磨粉机,矿石磨粉机,超微磨粉机,高压磨粉机公司推荐!
  • 我的学习开始及历程
  • 2025信息流代运营推荐:线尚网络精准投放,效果显著!
  • 零售行业绩效流程推行难点及 Tita 目标绩效一体化管理方案
  • Godot-C#处理节点关系
  • 软件工程-结队项目
  • 2025 年防撞钢护栏厂家推荐聊城市泰锌金属材料有限公司,桥梁,不锈钢,复合管,景观,灯光,热镀锌,河道,铝合金,绳索防撞钢护栏公司推荐
  • 2025年聚氨酯制品厂家推荐排行榜,浇注型聚氨酯,聚氨酯预聚体,聚氨酯胶黏剂,聚氨酯组合料,液体聚氨酯,专业品质与创新技术之选
  • Vue中keep-alive实现原理解析
  • 深入学习Spring Boot框架
  • 《探索C语言中数组的奥秘(下)》 - 教程
  • Java异步编程难题拆解
  • 2025年智能防爆灯/工矿灯厂家推荐排行榜,专业安全与高效照明解决方案!
  • 预测不可预测之物的校准学习技术
  • 2025年水产养殖设备厂家推荐排行榜,PP鱼池/微滤机/不锈钢微滤机/锦鲤池微滤机一体机/全自动污水过滤器/生物过滤器/循环水养殖系统公司推荐!
  • Java 无锁方式实现高性能线程
  • java语言程序设计类与对象课后作业 - 20243867孙堃2405
  • 详细介绍:2020年美国新冠肺炎疫情数据分析与可视化
  • java流程控制。