响应式网站多少钱 开发/百度上打广告怎么收费

响应式网站多少钱 开发,百度上打广告怎么收费,襄阳蒂凯网络网站建设小程序,应用公园是收费还是免费的一、爬取中国天气网所有地区当天的天气数据(PyCharm): 网址:https://www.weather.com.cn/ 下面爬取数据: 因为现在已经到了夜间,所以白天的数据已经不见了,但原理是一样的。 二、代码以及详情…

一、爬取中国天气网所有地区当天的天气数据(PyCharm):

网址:https://www.weather.com.cn/

下面爬取数据:

因为现在已经到了夜间,所以白天的数据已经不见了,但原理是一样的。

二、代码以及详情解释:

 具体的代码的url以及headers是要从检查里面找的:

 

以及这些元素代码的寻找:

这个代码是一个用于从中国天气网(weather.com.cn)抓取天气信息的Python脚本。它使用了 requests 库发送HTTP请求,并使用 BeautifulSoup 库解析HTML内容。以下是代码的主要功能和相关知识点的罗列:


代码功能概述

  1. 遍历多个地区:代码通过遍历一个地区列表(area),构造不同的URL来获取不同地区的天气信息。

  2. 发送HTTP请求:使用 requests.get() 发送HTTP请求,获取网页的HTML内容。

  3. 解析HTML:使用 BeautifulSoup 解析HTML内容,提取所需的天气信息。

  4. 提取天气信息:从HTML中提取城市名称、上午天气、上午风力风向、上午最高温度、晚上天气、晚上风力风向、晚上最低温度等信息。

  5. 去重处理:使用集合 processed_cities 来避免重复处理同一个城市的天气信息。

  6. 打印结果:将提取的天气信息格式化输出到控制台。


涉及的知识点

1. Python基础
  • 列表与循环

    • 使用列表 area 存储地区代码。

    • 使用 for 循环遍历列表中的每个地区。

  • 字符串格式化

    • 使用 f-string(如 f"https://www.weather.com.cn/textFC/{page}.shtml")动态构造URL。

  • 集合(Set)

    • 使用集合 processed_cities 来存储已经处理过的城市名称,确保每个城市只被处理一次。

2. HTTP请求
  • requests 库

    • 使用 requests.get() 发送HTTP GET请求,获取网页内容。

    • 设置请求头 headers,模拟浏览器访问,避免被网站反爬虫机制拦截。

    • 使用 res.encoding = 'utf-8' 设置响应内容的编码为UTF-8,确保中文内容正确显示。

3. HTML解析
  • BeautifulSoup 库

    • 使用 BeautifulSoup(res.text, 'lxml') 解析HTML内容,lxml 是解析器。

    • 使用 soup.select() 方法通过CSS选择器查找HTML元素。

    • 使用 find() 和 find_all() 方法查找特定的HTML标签和属性。

4. HTML结构与CSS选择器
  • HTML表格结构

    • 网页中的天气信息以表格形式展示,代码通过查找 <div class="conMidtab2"> 和 <tr><td> 标签来提取数据。

  • CSS选择器

    • 使用 div.conMidtab2 选择所有 class 为 conMidtab2 的 <div> 元素。

    • 使用 tr 选择表格行,td 选择表格单元格。

  • HTML属性

    • 通过 width 属性(如 width='83')定位特定的表格单元格。

5. 数据提取与处理
  • 提取文本内容

    • 使用 .string 提取HTML标签内的文本内容(如 tr.find('td', width='83').a.string)。

  • 条件判断

    • 使用 if 语句检查是否存在某个HTML元素或属性,避免因元素不存在而报错。

  • 数据格式化与输出

    • 使用 print() 函数将提取的天气信息格式化输出。

6. 去重与集合
  • 集合(Set)

    • 使用集合 processed_cities 存储已经处理过的城市名称,利用集合的唯一性特性避免重复处理。

7. 异常处理(未显式实现)
  • 代码中没有显式的异常处理(如 try-except),但在实际应用中,建议添加异常处理机制,以应对网络请求失败或HTML解析错误等情况。


代码执行流程

  1. 遍历地区列表

    • 对每个地区代码(如 hbdb 等),构造对应的URL。

  2. 发送HTTP请求

    • 使用 requests.get() 获取网页内容。

  3. 解析HTML

    • 使用 BeautifulSoup 解析HTML,查找包含天气信息的表格。

  4. 提取天气信息

    • 遍历表格行,提取城市名称、天气、风力风向、温度等信息。

  5. 去重处理

    • 使用集合 processed_cities 避免重复处理同一城市。

  6. 输出结果

    • 将提取的天气信息格式化输出到控制台。


总结

这段代码展示了如何使用Python进行网页抓取和HTML解析,涉及的知识点包括:

  • Python基础(列表、循环、字符串格式化、集合)

  • HTTP请求(requests 库)

  • HTML解析(BeautifulSoup 库)

  • HTML结构与CSS选择器

  • 数据提取与处理

  • 去重与集合

通过这段代码,可以学习如何从网页中提取结构化数据,并将其用于进一步的分析或存储。

import requests
from bs4 import BeautifulSoup# 定义地区列表
area = ["hb", "db", "hd", "hz", "hn", "xb", "xn", "gat"]for page in area:# 构造 URLurl = f"https://www.weather.com.cn/textFC/{page}.shtml"headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"}# 发送 HTTP 请求获取网页内容res = requests.get(url=url, headers=headers)res.encoding = 'utf-8'  # 设置编码为 UTF-8# 使用 BeautifulSoup 解析网页内容soup = BeautifulSoup(res.text, 'lxml')# 用于存储已经处理过的城市名称processed_cities = set()# 遍历所有 class 为 conMidtab2 的 div 元素for div in soup.select('div.conMidtab2'):# 遍历 div 中的所有 tr 元素(表格行)for tr in div.select('tr'):# 检查当前行是否包含宽度为 83 的 td 元素,该元素可能包含城市信息if tr.find('td', width='83'):# 检查宽度为 83 的 td 元素中是否有 a 标签,a 标签内通常是城市名if tr.find('td', width='83').a:# 提取城市名city = tr.find('td', width='83').a.string# 如果城市已经处理过,则跳过if city in processed_cities:continue# 否则,将城市添加到已处理集合中processed_cities.add(city)# 打印城市名print(f"城市:{city}")# 提取上午天气信息morning_weather_td = tr.find('td', width='89')if morning_weather_td:morning_weather = morning_weather_td.stringprint(f"上午天气:{morning_weather}")# 提取上午风力风向信息morning_wind_td = tr.find('td', width='162')if morning_wind_td:spans = morning_wind_td.find_all('span')if len(spans) >= 2:morning_wind_1 = spans[0].stringmorning_wind_2 = spans[1].stringprint(f"上午风力风向:{morning_wind_1} {morning_wind_2}")# 提取上午最高温度morning_max_temp_td = tr.find('td', width='92')if morning_max_temp_td:morning_max_temp = morning_max_temp_td.stringprint(f"上午最高温度:{morning_max_temp}")# 提取晚上天气信息night_weather_td = tr.find('td', width='98')if night_weather_td:night_weather = night_weather_td.stringprint(f"晚上天气:{night_weather}")# 提取晚上风力风向信息night_wind_td = tr.find('td', width='177')if night_wind_td:spans = night_wind_td.find_all('span')if len(spans) >= 2:night_wind_1 = spans[0].stringnight_wind_2 = spans[1].stringprint(f"晚上风力风向:{night_wind_1} {night_wind_2}")# 提取晚上最低温度night_min_temp_td = tr.find('td', width='86')if night_min_temp_td:night_min_temp = night_min_temp_td.stringprint(f"晚上最低温度:{night_min_temp}")# 打印分隔线,用于区分不同城市的天气信息print('-----------------')else:# 如果当前行不包含宽度为 83 的 td 元素,跳过该行continue

三、代码运行结果展示:

 

 

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

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

相关文章

Ollama本地部署deepseek-r1蒸馏版

Docker安装Ollama 拉取镜像 docker pull ollama/ollama​ 启动-使用GPU docker run -d --gpusall -p 11434:11434 --name ollama ollama/ollamadocker run : Docker 的核心命令&#xff0c;用于创建并启动一个新的容器。 -d : 后台模式&#xff08;detached mode&#xff09…

41.HarmonyOS NEXT Layout布局组件系统详解(八):自定义样式与类

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT Layout 布局组件系统详解&#xff08;八&#xff09;&#xff1a;自定义样式与类 文章目录 HarmonyOS NEXT Layout 布局组件系统详…

【Go | 从0实现简单分布式缓存】-7:增加etcd和gRPC功能

本文目录 1.序2.引入etcd缓存流程项目结构 3.gocachepb.proto4.服务注册register.go5.服务发现discover.go6.gRPC客户端client.gopeers.goclient.go 7.gRPC服务端实现server.go一些问题缓存获取流程缓存设置流程为什么要带超时的上下文&#xff1f; 1.序 GeeCache项目并没有引…

Pytorch系列教程:可视化Pytorch模型训练过程

深度学习和理解训练过程中的学习和进步机制对于优化性能、诊断欠拟合或过拟合等问题至关重要。将训练过程可视化的过程为学习的动态提供了有价值的见解&#xff0c;使我们能够做出合理的决策。训练进度必须可视化的两种方法是&#xff1a;使用Matplotlib和Tensor Board。在本文…

18 | 实现简洁架构的 Handler 层

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入我的训练营&#xff1a;云原生AI实战营&#xff0c;一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营&#xff1b;本节课最终源码位于 fastgo 项目的 feature/s14 分支&#x…

STM32之I2C硬件外设

注意&#xff1a;硬件I2C的引脚是固定的 SDA和SCL都是复用到外部引脚。 SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器&#xff0c;此时会置状态寄存器的TXE为1&#xff0c;表示发送寄存器为空&#xff0c;然后往数据控制寄存器中一位一位的移送数…

不用 Tomcat?SpringBoot 项目用啥代替?

在SpringBoot框架中&#xff0c;我们使用最多的是Tomcat&#xff0c;这是SpringBoot默认的容器技术&#xff0c;而且是内嵌式的Tomcat。 同时&#xff0c;SpringBoot也支持Undertow容器&#xff0c;我们可以很方便的用Undertow替换Tomcat&#xff0c;而Undertow的性能和内存使…

基于SpringBoot的“体育购物商城”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“体育购物商城”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体模块设计 前台用户登录界面 系统首页界面…

go context学习

1.Context接口2.emptyCtx3.Deadline()方法4.Done()方法5.Err方法6.Value方法&#xff08;&#xff09;7.contex应用场景8.其他context方法 1.Context接口 Context接口只有四个方法&#xff0c;以下是context源码。 type Context interface {Deadline() (deadline time.Time, …

在VMware Workstation Pro上轻松部署CentOS7 Linux虚拟机

首先我们需要下载VM虚拟机和Centos7的镜像 下载并安装VMware Workstation Pro 访问VMware Workstation Pro官网下载 https://www.vmware.com/ 第二步&#xff1a;下载centos7镜像 访问centos官网下载 https://www.centos.org/ 开始部署Centos7 点击创建新的虚拟机 这里是Cen…

Android AudioFlinger(五)—— 揭开AudioMixer面纱

前言&#xff1a; 在 Android 音频系统中&#xff0c;AudioMixer 是音频框架中一个关键的组件&#xff0c;用于处理多路音频流的混音操作。它主要存在于音频回放路径中&#xff0c;是 AudioFlinger 服务的一部分。 上一节我们讲threadloop的时候&#xff0c;提到了一个函数pr…

从0开始的操作系统手搓教程27:下一步,实现我们的用户进程

目录 第一步&#xff1a;添加用户进程虚拟空间 准备冲向我们的特权级3&#xff08;用户特权级&#xff09; 讨论下我们创建用户线程的基本步骤 更加详细的分析代码 用户进程的视图 说一说BSS段 继续看process.c中的函数 添加用户线程激活 现在&#xff0c;我们做好了TSS…

Node 使用 SSE 结合redis 推送数据(echarts 图表实时更新)

1、实时通信有哪些实现方式&#xff1f; 特性轮询&#xff08;Polling&#xff09;WebSocketSSE (Server-Sent Events)通信方向单向&#xff08;客户端 → 服务端&#xff09;双向&#xff08;客户端 ↔ 服务端&#xff09;单向&#xff08;服务端 → 客户端&#xff09;连接方…

Android Native 之 文件系统挂载

一、文件系统挂载流程概述 二、文件系统挂载流程细节 1、Init启动阶段 众所周知&#xff0c;init进程为android系统的第一个进程&#xff0c;也是native世界的开端&#xff0c;要想让整个android世界能够稳定的运行&#xff0c;文件系统的创建和初始化是必不可少的&#xff…

Redis--Set类型

目录 一、引言 二、介绍 三、命令 1.sadd,smembers,sismember 2.spop&#xff0c;srandmember 3.smove&#xff0c;srem 4.sinter&#xff0c;sinterstore 5.sunion,sunionstore,sdiff,sdiffstore 四、内部编码 1.intset 2.hashtable 五、应用场景 1.使用Set保存用…

Faster R-CNN原理详解以及Pytorch实现模型训练与推理

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

使用dockerfile创建镜像

1.什么是Dockerfile Dockerfile 是一个用于指导 Docker 镜像构建过程的脚本文件。它通过一系列指令来详细描述了构建镜像所需的步骤和配置细节。利用 Dockerfile&#xff0c;我们可以精确地设定容器的运行环境&#xff0c;安装必要的软件&#xff0c;复制项目文件&#xff0c;…

大脑宏观结构中的富集俱乐部:图论分析视角

摘要 大脑是一个高度复杂的网络。越来越多的证据支持大脑网络中一组重要脑区的关键作用&#xff0c;这些脑区通常被称为大脑的“核心”或“枢纽”区域。这些区域不仅能量消耗较高&#xff0c;而且在神经信息传递方面的效率也极高&#xff0c;因此被称为“富集俱乐部”。富集俱乐…

Redis7——进阶篇(五)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…

光谱相机检测肉类新鲜度的原理

光谱相机通过分析肉类样本在特定波长范围内的光谱反射特性&#xff0c;结合化学与生物指标的变化规律&#xff0c;实现对其新鲜度的无损检测。其核心原理可概括为以下方面&#xff1a; 一、光谱特征与物质成分的关联性 ‌物质特异性吸收/反射‌ 不同化学成分&#xff08;如水分…