【python014】Python爬取并解析潮汐天气简报-潮历数据

1.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!

  • 【python014】Python爬取并解析潮汐天气简报-潮历数据,源代码下载
  • 【python014】Python爬取并解析潮汐天气简报-潮历数据,源代码下载
  • 【python014】Python爬取并解析潮汐天气简报-潮历数据,源代码下载

文章目录

    • 1.简要介绍
    • 2.`Python`版数据爬取、解析代码
    • 3.参考地址

1.简要介绍

  • 参考潮汐数据,网站地址:潮汐表 快速导航,做进一步层次应用。数据可视化效果如下图所示:
    在这里插入图片描述
  • 发现大语言模型写的并不能解决问题,也可能是没付费的原因,haha
  • 趁着空闲的时间撸了段代码,供已参考

2.Python版数据爬取、解析代码

  • 源代码
    import re
    import requests
    import pandas as pd
    from datetime import datetime
    from bs4 import BeautifulSoup 
    import warnings
    warnings.filterwarnings('ignore')pd.set_option('display.width', 500)
    pd.set_option('display.max_rows', 200)
    pd.set_option('display.max_columns', 200)
    pd.set_option('display.max_colwidth', 1000)# 浙江-宁波市-松兰山
    zj_nb_sl_url = 'https://www.eisk.cn/Calendar/1259.html'
    zj_nb_sl_name = '浙江-宁波市-松兰山'
    # 浙江-象山县-西泽
    zj_xs_xz_url = 'https://www.eisk.cn/Calendar/463.html'
    zj_xs_xz_name = '浙江-象山县-西泽'
    # 浙江-象山县-石浦港
    zj_xs_sp_url = 'https://www.eisk.cn/Calendar/460.html'
    zj_xs_sp_name = '浙江-象山县-石浦港'wl15tcxb = '未来15天潮汐表'def parser_response_html( _url, _name ):response = requests.get( _url )  # 发送HTTP请求  response.raise_for_status()  # 如果请求失败,则抛出HTTPError异常  # 解析HTML  soup = BeautifulSoup(response.text, 'html.parser')og_title_desc = soup.find(attrs={"property": "og:description"})['content']result_html = []for a_slice in soup.find_all('a', href = re.compile(r'/Tides/\d+\.html\?date=.*?')):hour = a_slice.find('div', class_='hour').text.strip()hour_date = parser_ymd_date( hour )day = a_slice.find('div', class_='day').text.strip()_temperature = a_slice.find('div', class_='temperature').text.strip()humidity = a_slice.find('div', class_='humidity').text.strip()temperature = a_slice.find('div', class_ = 'temperature', style = re.compile(r'color:.*?') ).text.strip()tide2 = ';'.join( [','.join( c.string.strip() for c in t.contents ) for t in a_slice.find_all('div', attrs={'class':'tide2'})] )skycon = a_slice.find('div', class_='skycon').text.strip()visibility = a_slice.find('div', class_='visibility').text.strip()dswrf = a_slice.find('div', class_='dswrf').text.strip()wave2 = a_slice.find('div', class_='wave2').text.strip()wave1 = a_slice.find('div', class_='wave1').text.strip()wave3 = ''if a_slice.find('div', class_='wave3'):wave3 = a_slice.find('div', class_='wave3').text.strip()wind2 = a_slice.find('div', class_='wind2').text.strip()wind1 = a_slice.find('div', class_='wind1').text.strip()wind3 = a_slice.find('div', class_='wind3').text.strip()description = ''for desc in a_slice.find_all('div', class_='description'):description += desc.text.strip().replace('\n', '').replace('\r', '').replace(' ', '')result_html.append( [og_title_desc, hour_date, day, _temperature, humidity, temperature, tide2, skycon, visibility, dswrf, wave2, wave1, wave3, wind2, wind1, wind3 , description] )result_df = pd.DataFrame( result_html )return result_dfzj_nb_sl_df = parser_response_html( zj_nb_sl_url, zj_nb_sl_name )
    zj_xs_xz_df = parser_response_html( zj_xs_xz_url, zj_xs_xz_name )
    zj_xs_sp_df = parser_response_html( zj_xs_sp_url, zj_xs_sp_name )union_df = pd.concat( [zj_nb_sl_df, zj_xs_xz_df, zj_xs_sp_df] )union_df.columns = [ 'title' ,'hour_date' ,'day' ,'lunar_calendar' ,'humidity' ,'temperature' ,'tide2' ,'skycon' ,'visibility' ,'dswrf' ,'wave2' ,'wave1' ,'wave3' ,'wind2' ,'wind1' ,'wind3 ' ,'description']union_df.to_excel('./%s-%s-%s-%s.xlsx' % ( zj_nb_sl_name ,zj_xs_xz_name ,zj_xs_sp_name ,wl15tcxb ), index=None, encoding='utf8')
    
  • 数据样例解析效果如下图所示:
    在这里插入图片描述

3.参考地址

  • 潮汐表 快速导航
  • 【python014】Python爬取并解析潮汐天气简报-潮历数据源代码下载

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

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

相关文章

EtherNet/IP转Profinet协议转化网关(功能与配置)

如何将EtherNet/IP和Profinet网络连接通讯起来呢?近来几天有几个朋友问到这个问题,那么作者在这里统一说明一下。其实有一个不错的设备产品可以很轻易地解决这个问题,名为捷米特JM-PN-EIP。接下来作者就从该设备的功能及配置详细说明一下。 一&#xf…

Leetcode283. 移动零(java实现)

今天分享的题目是leetcode283移动0(成都人狂喜) 先来看下题目描述 这道题目我也看了官方的题解感觉有点冗余了。 那么我们就不用官方的题解了,分享下我们自己的解体方式。 解题步骤:1.找到非0元素,如果是非0进行记录2…

CentOS6.0安装telnet-server启用telnet服务

CentOS6.0安装telnet-server启用telnet服务 一步到位 fp"/etc/yum.repos.d" ; cp -a ${fp} ${fp}.$(date %0y%0m%0d%0H%0M%0S).bkup echo [base] nameCentOS-$releasever - Base baseurlhttp://mirrors.163.com/centos-vault/6.0/os/$basearch/http://mirrors.a…

永劫无间游戏辅助攻略:2024阵容搭配攻略大全!云手机辅助!

《永劫无间》是一款备受玩家喜爱的动作类游戏,其丰富的角色选择和多样的技能搭配让玩家在战斗中体验到了极大的乐趣。然而,要在竞争激烈的战场上脱颖而出,仅仅依靠基础的游戏理解是远远不够的。为了帮助广大玩家提升战斗力,本文将…

Ruby、Python、Java 开发者必备:Codigger之软件项目体检

在编程的广阔天地里,Ruby、Python 和 Java 开发者们各自凭借着独特的语言特性,构建着精彩纷呈的应用世界。然而,无论使用哪种语言,确保项目的高质量始终是至关重要的目标。而 Codigger 项目体检则成为了实现这一目标的得力助手&am…

python机器学习8--网络

1.超文本传输协议HTTP GET 在实际开发应用程序时,一定都会利用WiFi网络进行连接,再通过HTTP的方式读入后台的数据,并下载和显示在用户的PC上。这靠的是网络服务的技术,也就是大家提到的Web Service。而与HTTP服务器交换数据有两种…

【React】详解“最新”和“最热”切换与排序

文章目录 一、基本概念和初始化二、切换与排序功能的实现1. 函数定义和参数2. 设置活动 Tab3. 定义新列表变量4. 根据排序类型处理列表4.1 按时间降序排序4.2 按点赞数降序排序 5. 更新评论列表 三、渲染导航 Tab 和评论列表1. map 方法2. key 属性3. className 动态赋值4. onC…

数据结构(二叉树)

树 树的概念与结构 树是⼀种⾮线性的数据结构,它是由n(n>0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。 • 有⼀个特殊的结点,…

linux 桌面版安装原生微信的方式列举

linux 桌面版安装原生微信的方式列举 方法1:下载deb安装包安装 下载地址:https://github.com/lovechoudoufu/wechat_for_linux/releases 安装示例: sudo dpkg -i linuxqq_3.2.10-25765_amd64.deb方法2:Flatpak安装 安装flatp…

docker dotnet-dump离线部署

1.下载指定dotnet版本的dotnet-dump 示例地址: https://www.nuget.org/packages/dotnet-dump/3.1.141901#dependencies-body-tab 我本地测试的是netcore 3.1 2. 在本地解压 将文件解压出来。看到any目录,能看到我们要用的dotnet-dump文件 3. 将tools/netcoreapp2.…

qt实现智能家居(语言控制+服务器监听)

目录 介绍页面展示环境搭建开发工具开发环境百度token 连接服务器 介绍 qt智能家居(语音控制) 视频演示地址:进入哔哩哔哩 仓库地址:Gitee 源代码:百度网盘 默认密码是123456 页面展示 登录页面演示图 控制中心页…

SpringBoot运行流程源码分析

run方法核心流程 我们在启动SpringBoot的时候调用的是SpringApplication类的静态run方法。其核心流程如下图所示: 在run方法内完成了SpringApplication的声明周期。,这个过程涉及的几个核心类如下: SpringApplicationRunListeners&#xff…

一起学Java(1)-新建一个Gradle管理的Java项目

一时兴起,也为了便于跟大家同步学习进展和分享样例代码,遂决定创建一个全新的Java项目,并通过Github与大家分享。本文就是记录该项目的创建过程以及其中的一些知识要点(如Gradle等)。为了紧跟技术潮流和提高操作效率&a…

鱼哥好书分享活动第28期:看完这篇《终端安全运营》终端安全企业基石,为你的终端安全保驾护航!

鱼哥好书分享活动第28期:看完这篇《终端安全运营》终端安全企业基石,为你的终端安全保驾护航! 读者对象:主要内容:本书目录:了解更多:赠书抽奖规则: 在当前网络威胁日益复杂化的背景下&#xff…

linux nginx 命令记录,和转发

nginx: 查看配置文件:sudo find / -name nginx.conf 配置文件:/etc/nginx/nginx.conf 检查nginx.conf文件正确性 nginx -t -c /path/to/nginx.conf 或者 有nginx命令执行 nginx -t 查找nginx 可执行文件:which nginx /usr/sbin/nginx 安装Ng…

游戏UI设计大师课:3款游戏 UI 设计模板

很多时候,做设计需要找素材。假如是普通的 UI 界面或者 Banner 等等,在Dribbble、Pinterest、即时设计、Behance 翻看这样的网站,至少可以梳理出一些想法和思路。如果你需要一个更规范的指南,此时,在各种设计规范、官方…

.Net 检验信息采集及管理系统LIS,成熟的医院实验室管理系统源码

检验管理系统LIS实现了检验信息电子化、检验信息管理自动化,具备与医嘱双向沟通、采用条码管理手段、财务自动计费、仪器双向控制等重要功能特点。其工作流程为通过门诊医生和住院工作站提出检验申请,生成相应患者的化验条码标签,在生成化验单…

根据题意写出完整的css,html和js代码【购物车模块页面及功能实现】

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述 根据题意写出完…

从煎饼摊到便利店,如何理解公司的商业价值 - 《进阶吧!投资者4》读后感

投资逻辑永远要遵循最基本的商业逻辑。要搞清楚两个最基本问题,认知一家企业最基本的要素是什么;盈利的本质是什么。 评估公司的商业价值 要评估企业的估值,我们可以在战术上用资产未来可以产生现金流的折现来评估资产的价值,如果…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 亲子游戏(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…