数据采集与融合技术实验课程作业二

news/2024/10/19 12:35:10

数据采集与融合技术实验课程作业二

作业所属课程 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology
作业链接 https://edu.cnblogs.com/campus/fzu/2024DataCollectionandFusiontechnology/homework/13285
gitee码云代码位置 https://gitee.com/wang-qiangsy/crawl_project/tree/master/作业二
学号 102202106

目录
  • 数据采集与融合技术实验课程作业二
    • 作业内容
      • 作业①:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库。
      • 作业②:用requests和BeautifulSoup库方法定向爬取股票相关信息,并存储在数据库中。
      • 作业③:爬取中国大学2021主榜(https://www.shanghairanking.cn/rankings/bcur/2021)所有院校信息,并存储在数据库中。
    • 作业①:
      • 主要代码
      • 代码运行结果
      • 作业心得
    • 作业②:
      • 主要代码
      • 代码运行结果
      • 作业心得
    • 作业③:
      • 主要代码
      • 代码运行结果
      • 作业心得

作业内容

作业①:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库。

作业②:用requests和BeautifulSoup库方法定向爬取股票相关信息,并存储在数据库中。

作业③:爬取中国大学2021主榜(https://www.shanghairanking.cn/rankings/bcur/2021)所有院校信息,并存储在数据库中。

作业①:

主要代码

# 定义获取天气数据的函数
def get_weather_data(city_code):url = f'http://www.weather.com.cn/weather/{city_code}.shtml'response = requests.get(url)response.encoding = 'utf-8'soup = BeautifulSoup(response.text, 'html.parser')weather_data = []forecast = soup.find('ul', class_='t clearfix')for li in forecast.find_all('li'):date = li.find('h1').textweather = li.find('p', class_='wea').texttemperature = li.find('p', class_='tem').text.strip()wind = li.find('p', class_='win').find('span')['title']weather_data.append((date, weather, temperature, wind))return weather_data

代码运行结果


运行查看DB文件脚本查看天气数据

作业心得

  1. 数据抓取与解析
    在这次作业中,我使用了 requests 库来发送 HTTP 请求,并使用 BeautifulSoup 库来解析 HTML 内容。通过解析网页中的天气预报数据,我能够提取出每一天的日期、天气情况、温度和风力信息。
  2. 数据存储
    为了保存抓取到的天气数据,使用了 sqlite3 库来创建和操作 SQLite 数据库。通过建表然后保存所需要的信息。

作业②:

主要代码

# 获取网页内容
def get_html(url):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'}try:response = requests.get(url, headers=headers)response.raise_for_status()  # 确保请求成功return response.textexcept requests.RequestException as e:print(f"Error fetching data from {url}: {e}")return ""# 解析JSON内容,提取股票信息
def parse_page(json_data):stock_data = []data = json.loads(json_data)if 'data' in data and 'diff' in data['data']:for item in data['data']['diff']:stock_name = item['f14']stock_price = item['f2']stock_change = item['f3']stock_data.append((stock_name, stock_price, stock_change))return stock_data

代码运行结果


运行查看DB文件脚本查看股票数据

作业心得

  1. F12调试分析
    通过网页调试分析抓取需要的信息部分,提取其URL信息,我通过F12调试分析后抓取了包含股票信息的URL信息。
  2. 数据抓取与解析
    在这次作业中,我使用了 requests 库来发送 HTTP 请求,并使用 BeautifulSoup 库来解析 HTML 内容。
  3. 数据存储
    为了保存抓取到的股票数据,使用了 sqlite3 库来创建和操作 SQLite 数据库。通过建表然后保存所需要的信息。

作业③:

主要代码

# 定义获取院校数据
def get_university_data():url = 'https://www.shanghairanking.cn/rankings/bcur/2021'response = requests.get(url)response.encoding = 'utf-8'soup = BeautifulSoup(response.text, 'html.parser')university_data = []# 查找包含院校信息的表格table = soup.find('table')for row in table.find_all('tr')[1:]: cols = row.find_all('td')if len(cols) > 1:rank = cols[0].text.strip()name = cols[1].text.strip()province = cols[2].text.strip()total_score = cols[3].text.strip()university_data.append((rank, name, province, total_score))return university_data

代码运行结果


运行查看DB文件脚本查看股票数据

作业心得

  1. F12调试分析
    通过网页调试分析抓取需要的信息部分,提取其URL信息,我通过F12调试分析后抓取了包含大学信息的URL信息。
  2. 数据抓取与解析
    在这次作业中,我使用了 requests 库来发送 HTTP 请求,并使用 BeautifulSoup 库来解析 HTML 内容。
  3. 数据存储
    为了保存抓取到的股票数据,使用了 sqlite3 库来创建和操作 SQLite 数据库。通过建表然后保存所需要的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

spark sql语句性能优化及执行计划

一、优化点:1、not in 替换为 not exist;2、in 替换为 right join;3、distinct 替换为 group by;4、count(distinct) 替换为 count;5、where条件中,等号左右两边的数据类型需要一致;6、where条件中,等号左边不要有函数;7、where条件上移;8、优化点需要对照执行计划,并…

GDPC-CSA::CTF一轮web题目write up-T2 ez http

首先来看题目先不鸟提示,进去页面逛逛,F12一下,看到如下内容回头来看提示,robots.txt是网页用来告知爬虫允许和禁止访问文件的君子协议,由题我们决定先打开/robots.txt查看一下爬虫被禁止访问哪些文件,其中说不定会有线索 如果对robots.txt还不了解的可以看看这里 在网站…

AIGC时代的语音笔记工具,创意人士的福音

国庆期间,我发现了一款特别好用的语音笔记工具,它应该算是AIGC时代的新一代笔记工具了。这个工具,是那些随时会有创意想法要记录,或者经常需要做会议纪要,读书笔记的人福音。 它有几个功能让我特别喜欢。第一个是语音笔记功能,这个不像科大讯飞的语音输入法,它不仅仅是简…

初探AI之got-ocr2.0大模型本地部署与遇到的各种坑处理

一、环境搭建 1.安装cuda,本人使用的是12.1版本,下载地址:https://developer.nvidia.com/cuda-12-1-1-download-archive2.安装conda3,https://blog.csdn.net/m0_73634846/article/details/136378350 3.准备代码环境 原文: https://mp.weixin.qq.com/s/PQVrlr5FoVb89Mivzi7p…

体脂率测试

代码展示 #include<stdio.h>int main() { float h,w,t; t=h/(w*w); if(t<18.5)cout<<"偏瘦”; else if(18.5<t<23.9)cout<<"正常"; else if(23.9<t<27.9)cout<<"偏胖"; else if(27.9<t<39.9)cout<…

使用Web组件加载页面

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs…

如何创建Electron + Vue3项目, 并调用C# dll

依赖环境 当前系统环境为win11,真正上手才知道环境问题才是最大的问题,希望本文能帮你节约时间。 本文参考以下资料 https://www.electronforge.io/guides/framework-integration/vue-3 perplexity.ai和kimi.ai提供其他相关资料 nodejs 在开发前需要确定你要调用的dll是32位还…