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

102302105汪晓红作业1

作业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.zskr.cn/news/31964.html

相关文章:

  • 【IEEE出版 | 重庆邮电大学主办 | 多届次、高层次】第六届人工智能与计算机工程国际学术会议(ICAICE 2025)
  • 解决Java项目在复杂网络环境下访问外网不通的问题
  • Docker容器里面部署的Jenkins的Java17升级到21版本(无需删除之前容器,内部在线升级) - 攻城狮
  • 【IEEE出版 | 往届均已完成见刊检索 | 见刊检索稳定】第七届信息与计算机前沿术国际学术会议(ICFTIC 2025)
  • 动态点分树
  • 2025年隔热条厂家权威推荐榜:尼龙隔热条/PA66尼龙隔热条/建筑用隔热条/断桥铝门窗隔热条/幕墙隔热条/阳光房隔热条/国标隔热条精选
  • 「Gym 104901F」Say Hello to the Future
  • 渐进过程中大O与小o混用
  • 基于MATLAB的光学CCD全息成像仿真程序实现
  • el-date-picker样式修改
  • unity管理器设计:Manager of Managers
  • 决策不再凭感觉!Tita用数据驱动销售与交付的一体化协同
  • 浅谈 Agent 开发工具链演进历程
  • 为IvorySQL增添PACKAGE语法帮助
  • # 情绪日历应用(python AI项目)
  • 电梯调度算法结对编程作业
  • 【完结22章】从0到1,LangChain+RAG全链路实战AI知识库
  • 芯片实现路线图
  • 2025 年顶入式搅拌设备,直叶搅拌设备,节能减排搅拌设备厂家最新推荐,技术实力与市场口碑深度解析
  • 2025 年连铸机旋转接头,埋入式旋转接头,球体摆动旋转接头,造纸机旋转接头厂家最新推荐,精准检测与稳定性能深度解析
  • CorelDRAW的shell扩展ShellXP.dll导致资源管理器explorer.exe卡死/冻结/无响应/挂起
  • 2025 年非标旋转接头,异形旋转接头,钢铁厂旋转接头厂家最新推荐,聚焦高端定制需求与全案交付能力
  • 故障处理:ORA-02298: cannot validate (CTG.FK_CTG_LOGS_INT_201306) – parent keys not found
  • 2025 年矿用平板车,重型平板车,履带平板车,矿山平板车厂家最新推荐,产能、专利、环保三维数据透视!
  • 2025年10月兰花油品牌推荐榜单:多维度深度对比与选择指南
  • 2025 年1KV 冷缩硅橡胶电缆附件,冷热缩电缆附件,绕包电缆附件,熔接电缆附件厂家最新推荐,产能、专利、环保三维数据透视
  • PYTHON脚本验证端口访问权限(支持多种格式)
  • 2025年10月兰花油品牌推荐榜:五款高口碑产品深度对比解析
  • 杭州AI优化企业:国内GEO领域技术标杆 - 二当家
  • 构建定时 Agent,基于 Spring AI Alibaba 实现自主运行的人机协同智能 Agent