首页 > 其他分享 >第一次实践

第一次实践

时间:2024-10-15 16:32:07浏览次数:7  
标签:url image 实践 第一次 width import requests response

作业1:定向爬取大学排名信息

代码和结果截图

定向爬取大学信息

import requests
from bs4 import BeautifulSoup

# 目标URL
url = 'http://www.shanghairanking.cn/rankings/bcur/2020'

response = requests.get(url)
response.encoding = 'utf-8'  

# 使用BeautifulSoup解析网页内er容
soup = BeautifulSoup(response.text, 'html.parser')

# 查找所有包含排名信息的表格数据
table = soup.find('table')
rows = table.find_all('tr')

# 设置列宽
rank_width = 6
name_width = 30
province_width = 10
type_width = 8
score_width = 8

# 打印表头
print(f"{'排名':<{rank_width}} {'学校名称':<{name_width}} {'省市':<{province_width}} {'学校类型':<{type_width}} {'总分':<{score_width}}")

# 解析并打印每一行的排名信息
for row in rows[1:]:  # 跳过表头
    cols = row.find_all('td')
    rank = cols[0].text.strip()
    
    # 学校名称在指定标签内
    school_name_tag = cols[1].find('span', class_='name-cn')
    school_name = school_name_tag.text.strip() if school_name_tag else '未知'
    
    province = cols[2].text.strip()
    school_type = cols[3].text.strip()
    score = cols[4].text.strip()
    
    # 格式化输出,使得中英文混合对齐
    print(f"{rank:<{rank_width}} {format_str(school_name, name_width)} {format_str(province, province_width)} {format_str(school_type, type_width)} {score:<{score_width}}")

作业2:商城商品比价爬虫

代码和截图

商城商品比价爬虫

import requests

def get_display_length(s):
    length = 0
    for char in s:
        if '\u4e00' <= char <= '\u9fff':
            length += 2
        else:
            length += 1
    return length

def format_str(s, target_length):
    current_length = get_display_length(s)
    return s + ' ' * (target_length - current_length)

keyword = "戴敦邦"
url = f"https://search.kongfz.com/pc-gw/search-web/client/pc/product/keyword/list?keyword={keyword}&page=1&userArea=1006000000"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    data = response.json()
    
    if data.get('status') == 0:
        print("无数据或解析失败")
    else:
        items = data.get('data', {}).get('itemResponse', {}).get('list', [])
        
        print(format_str("书名", 30) + format_str("价格", 10))
        print('-' * 40)
        
        for item in items:
            title = item.get('title')
            price = item.get('priceText')
            
            if title and price:
                print(format_str(title, 30) + format_str(price, 10))
else:
    print(f"请求失败,状态码: {response.status_code}")

作业3:爬取网页内JPEG和JPG图片

代码和截图

爬取网页内JPEG和JPG图片

import requests
import os
import re
import time
url = 'https://news.fzu.edu.cn/yxfd.htm'

response = requests.get(url)
response.encoding = 'utf-8'
time.sleep(6)
image_pattern = re.compile(r'src="(.*?\.jpe?g)"')
images = image_pattern.findall(response.text)

save_dir = 'd:\\images'
if not os.path.exists(save_dir):
    os.makedirs(save_dir)

for i, image_url in enumerate(images, 1):
    if not image_url.startswith('http'):
        image_url = url.rsplit('/', 1)[0] + '/' + image_url
    image_data = requests.get(image_url).content
    image_name = os.path.join(save_dir, f'image_{i}.jpg')
    
    with open(image_name, 'wb') as f:
        f.write(image_data)
    print(f'下载完成: {image_name}')

标签:url,image,实践,第一次,width,import,requests,response
From: https://www.cnblogs.com/fuyu0925/p/18467819

相关文章

  • python使用http代理:实用的实践指南
    在Python中使用HTTP代理的实用指南在网络编程中,HTTP代理是一个非常有用的工具,能够帮助我们隐藏真实IP以及提高网络请求的灵活性。Python作为一门强大的编程语言,提供了多种方式来使用HTTP代理。接下来,我们将详细介绍如何在Python中使用HTTP代理,包括基本的设置和实际应用。什么......
  • GDPR核心要点详解与实践应用
    1.基本原则(第5条)©ivwdcwso(ID:u012172506)GDPR的7个基本原则及其实践应用:合法性、公平性和透明度实例:Netflix清晰说明如何使用用户数据,并获得用户同意。目的限制实例:LinkedIn仅将收集的职业信息用于networking目的,不用于其他未经授权的用途。数据最小......
  • 数据采集与融合第二次实践
    第二次作业报告一、作业内容概述在本次作业中,我完成了以下三个任务:作业①:从中国气象网(http://www.weather.com.cn)爬取指定城市的7日天气预报,并将数据保存至数据库。作业②:使用requests和BeautifulSoup库定向爬取股票相关信息,并存储在数据库中。作业③:爬取中国大学2021主......
  • 【PYTHON】图片和base64互转实践
    目录1导入依赖2image_to_base643base64_to_image1导入依赖importbase64fromPILimportImageimportio2image_to_base64defimage_to_base64(image_path):"""将图片文件转换成Base64编码的字符串:paramimage_path:图片文件的路径:retu......
  • 中小型医院网站:Spring Boot框架实践
    6系统测试6.1测试定义系统测试主要是判断系统是否可以正常运行,功能模块是否可以实现操作。程序代码中是否有错误出现。测试程序是开发过程中的一个主要问题。就算系统完成的再好,再进行程序测试时也会也会发现一个重来没有被发现的错误信息。测试不仅是系统开发的开始,而......
  • JSP第一次作业
    1、应用eclipse新建一个web项目,新建一个JSP页面。要求在页面的声明块中声明一个方法,方法功能为求2个数的平方和。在程序片中调用此方法求值,用java的表达式输出结果。要求调试程序,粘贴程序代码,并截图显示结果。<%@pagelanguage="java"contentType="text/html;charset=UTF-8......
  • 利用香港多IP服务器建站蜘蛛池执行SEO策略的实践
    在当今数字化时代,搜索引擎优化(SEO)已经成为吸引网站流量、提升在线业务可见性的关键策略。香港多IP服务器因其地理位置优势和网络环境的优越性,成为执行SEO战略的理想选择。以下是利用香港多IP服务器执行SEO策略的实践:地理位置和本地化策略:利用香港多IP服务器时,要考虑地理位......
  • 基于乐鑫 ESP32-C3 的 Matter Light 实践
    背景介绍最近公司在研究Matter协议在智能家居领域的市场机会,考虑到易用性和文档支撑等方面,相比较Telink,产品部门对乐鑫的Matter-SDK更感兴趣,因而开展了一些测试工作,毕竟实践出真知嘛。......
  • DIY Matter Bridge 和智能锁简单联动的实践
    一.写在前面在之前的博客文章《基于乐鑫ESP32-C3的MatterLight实践》中,我们利用乐鑫的硬件和SDK方案实现了简单的Light例程,并对Matter协议进行了简要介绍。在开始本篇文章之前,我还是打算重新聊一聊Matter,顺便谈谈自己对它的理解,这也能说明为何这段时间我一直执着于......
  • SpringBoot框架下的智能人事管理平台:开发与实践
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......