当前位置:首页 > 黑客技术 > 正文内容

python天气爬虫(python天气爬虫可视化)

hacker3年前 (2022-07-04)黑客技术125

本文目录一览:

如何使用python利用api获取天气预报

这个和用不用python没啥关系,是数据来源的问题。调用 *** API,使用 api相关接口获得你想要的内容,我 记得api中有相关的接口,你可以看一下接口的说明。用python做爬虫来进行页面数据的获取。希望能帮到你。

python爬虫完成了天气数据的爬寻,然后可以做一些什么变复杂或者变完整

再写个发邮件模块,根据爬取的天气内容判断,提醒用户是否需要带伞,适合穿什么衣服出门!

python如何提取网页天气信息

bs4是可以提取的,因为你这一段里面出现的文字都是你要的,不存在剔除的考虑。

网页解析:要么使用bs4、要么使用bs4+re(正则),或者你可以使用以下PyQuery,这个也是用在网页爬虫解析页面的模块。

如果还是琢磨不出来,你把你这整个的html源码发上来,我搞搞,现在只看一段很难帮你

Python爬虫看看哪个城市最热

哪个城市最热?

现如今,我大天朝举国上下都处于一种高温的状态。那么这里我们也来蹭一蹭热度,来写个小爬虫,看看全国哪个城市最热。东西虽然小,但是比起那些所谓“高大上”的教程来说,这篇文章比较脚踏实地,不玩虚的,你看完后一定可以学会的。

准备工作:

在做爬虫之前,首先对爬虫的解题路径做个简单概述。一个爬虫工作分为两步骤:

之一步:把你需要爬取的那个网页的数据全部拉下来。

第二步是把从网站上拉下来的数据进行过滤,把你需要的提取出来,把不需要的给过滤掉。这就是爬虫的工作原理。

我们要爬取的网站数据不是特别大,复杂度也不高。因此为降低大家学习爬虫的难度。我们不上那些很复杂的框架,比如Scrapy,而是直接使用一个简单又好用的第三方库帮我们完成爬虫任务,那就是requests库。requests库是一个专门用来从网站上拉取数据的库,也就对应了我们爬虫工作的之一步——从网站上拉取数据。这个库的使用,后面我们会讲到,如果您还没有安装这个库,那么可以通过以下命令进行安装:pip install requests。如果您使用的是Linux或者Mac OS系统,那么更好在前面加上一个sudo pip install requests,不然很容易会因为权限问题而安装失败。

在使用requests库把数据拉取下来以后,接下来的工作就是对这些数据进行分析和过滤了。这时候我们使用的一个第三方库是beautifulsoup4。这个库是专门用来解析网页数据的。并且为了使接下效率更高,一般我们推荐使用lxml来作为解析的引擎。因此,要使用beautifulsoup库,要通过以下命令来安装:

# 安装 lxmlpip install lxml# 安装 beautifulsoup4pip install bs4

中国天气网分析:

这里我们需要爬取的网站是:中国天气网her.com.cn/textFC/hb.shtml#。我们做任何爬虫之前,都需要对这个网站进行详细的分析,一定要达到了如指掌的境地。不然后面很容易在数据过滤的时候会出现一个问题,这也是所有做爬虫需要注意的地方。我们这里就跟大家分析一下中国天气网的网站:

在以上这个中国天气网的页面中。我们可以看到,他是通过区域的方式把全国个大省份和城市进行区分的,有:华北、东北、华东、华中、华南、西北、西南、港澳台。在每个区域下面,都是通过表格的形式把属于该区域下的所有省份以及城市的天气信息列出来。因此我们要做的是,首先找到所有的区域的链接,然后再在每个区域的链接下把这个区域下的所有的城市天气信息爬出来就可以了。 

我们已经知道只要拿到了所有的区域链接,就可以在这个链接的网页中把这些城市拿到。那么如何去拿到这个区域下对应的所有城市以及他们对应的天气信息呢?这时候就需要去解析源代码了,我们点击这个页面任何一个地方,然后右键点击审查元素,打开控制台后,去寻找规则(因为这个寻找规则比较繁琐,这里就做个简单概述,如果对如何去找到相应的元素感兴趣,可以关注本公众号,会有一套详细的视频教程免费教大家查找)。我们可以看到,一个省份的城市及其天气信息,都是放在一个叫做div class='4778-e646-9772-3d41 conMidtab2'的盒子中。因此我们只要找到所有的conMidtab2盒子,就找到了所有的城市。但是这个地方需要注意的是,因为在一个页面中,展示了 7 天的数据,因此如果你按照class='e646-9772-3d41-86e4 conMidtab2'这个规则去寻找的话,会得到从今天往后延 7 天的所有数据。这时候我们就要换一个规则了,我们经过分析(具体分析过程可以看本教程视频内容)发现一天的天气信息,是放在一个class='9772-3d41-86e4-a578 conMidtab'的这样一个盒子中。因此我们只要把之一个conMidtab盒子拿到,就可以拿到今天的天气数据而把其他日期的数据给过滤掉。这里要给大家上一份源代码了:

# find *** ,只会返回之一个满足条件的元素,也即只把之一个 conMidtab 返 *** 来,把今天的数据返 *** 来conMidtab = soup.find('div', class_='conMidtab')# 通过得到的这个 conMidtab,我们再调用 find_all *** ,把这个 conMidtab 元素下的所有 conMidtab2 盒子找到,得到这一天中这个区域下所有的城市conMidtab2_list = conMidtab.find_all('div', class_='conMidtab2')

也上一份图片给大家分析一下: 

我们已经分析好了如何获取城市的盒子,那么接下来就是去获取城市的天气信息了。我们继续分析(具体分析过程可以看本视频教程)后发现,在table中,前面两个tr是表头,知识用来解释数据的,我们不需要,那么真正有用的数据是从第三个tr开始的。并且第三个tr的第 1 个td展示的是该省或者直辖市的名称,从第二个td开始才是真正展示该省份下这个城市的详细天气情况了,这里上一张图片分析一下: 

并且,从第四个tr开始,下面的td全部展示的就是这个城市的信息了,而不包括省份的信息了,这里也用一张图片来说明这个问题: 

所以综合以上的分析,我们就知道,省份名称是存储在table下的第三个tr下的第 0 个td下,而城市名字则要进行判断,如果是第三个tr,那么就是在第二个td,如果是从第四个开始,那么就是存储在第 0 个td下。而更高气温也要区分,第三个tr,存储在第 5 个td下,从第四个tr开始,则存储在第 4 个td下,那么我们也可以上一份源代码,看看如何获取的:

conMidtab = soup.find('div', class_='conMidtab')

conMidtab2_list = conMidtab.find_all('div', class_='conMidtab2')for x in conMidtab2_list:

tr_list = x.find_all('tr')[2:]

province = ''

for index, tr in enumerate(tr_list):

# 如果是第 0 个 tr 标签,那么城市名和省份名是放在一起的        min = 0

if index == 0:

td_list = tr.find_all('td')

province = td_list[0].text.replace('\n', '')

city = td_list[1].text.replace('\n', '')            max = td_list[5].text.replace('\n', '')        else:

# 如果不是第 0 个 tr 标签,那么在这个 tr 标签中只存放城市名

td_list = tr.find_all('td')

city = td_list[0].text.replace('\n', '')            max = td_list[4].text.replace('\n', '')

TEMPERATURE_LIST.append({            'city': province+city,            'min': min

})

数据显示:

如果把所有数据都爬下来后,那么我们可以使用echarts-python把数据进行可视化,这部分内容比较简单,我就直接把我做的可视化的数据图给大家看下,具体的实现方式,大家可以观看我的视频教程,讲解非常详细: 

写在最后:

扫描二维码推送至手机访问。

版权声明:本文由黑客技术发布,如需转载请注明出处。

本文链接:https://www.w-123.com/186561.html

“python天气爬虫(python天气爬虫可视化)” 的相关文章

黑客称入侵了微软:拿到 Bing 和 Cortana 项目源代码

近日,据Reddit上的帖子和Cyber Kendra上的一份报告显示,LAPSUS$ (Lapsus) 组织入侵了微软的DevOps帐户,该组织此前入侵了NVIDIA和三星。 下面的截图由Lapsus发布,但很快被删除,由Cyber Kendra保存了下来。该组织声称可以访问微软的一些DevOps...

伪造“紧急搜查令”泛滥 美议员呼吁推动“数字真实性”立法

Krebs On Security 周二警告称:黑客正越来越多地利用受感染的政府和警察部门的电子邮件账户,以从移动运营商、互联网服务提供商(ISP)和社交媒体公司榨取敏感的客户信息。周四,美国参议院内精通技术的议员之一表示,其对这份报告感到很是不安,并且已向科技企业和联邦机构发去询问,以了解此类活动...

开源模块维护者破坏代码,只为抗议乌克兰战争

Hackernews 编译,转载请注明出处: 一个广泛应用于 Windows、 Linux 和 Mac 环境的开源模块的维护者最近破坏了它的功能,以抗议乌克兰的战争,大众再次将注意力集中在与软件代码依赖相关的潜在的严重安全问题上。 Node-ipc 是一个用于进程间通信的 JavaScrip...

透明部落黑客针对印度官员发动新一轮黑客攻击

 Hackernews 编译,转载请注明出处: 从2021年6月,一个可能来自巴基斯坦的攻击者与一个针对感兴趣目标的后门攻击有关,该攻击使用了一种基于 windows 的远程访问木马,名为 CrimsonRAT。 Cisco Talos公司的研究人员在与The Hacker New...

攻击者利用 DeFi 投票漏洞卷走 Beanstalk 近 1.82 亿美元加密货币

区块链分析公司 Peck Shield 于周日上午发布警告称,一名攻击者设法从 Beanstalk Farms 中提取了价值约 1.82 亿美元的加密货币。据悉,作为一个旨在平衡不同加密货币资产供需的去中心化金融(DeFi)项目,攻击者利用了 Beanstalk 的“多数投票治理系统”,这也是诸多...

微软警告 NOBELIUM 攻击技术愈加泛滥 谨防 HTML 代码夹带恶意软件

早在 5 月,微软就认定有俄罗斯背景的 NOBELIUM 黑客组织要对持续数月的 SolarWinds 网络攻击事件负责,并同企业、政府和执法机构达成了合作,以遏制此类网络攻击的负面影响。早些时候,微软更进一步地剖析了 NOBELIUM 使用的一套更加复杂的恶意软件传送方法。可知其用于造成破坏,并获...

评论列表

鸽吻鱼芗
3年前 (2022-07-05)

all('div', class_='conMidtab2')for x in conMidtab2_list:tr_list = x.find_all('tr')[2:]province = ''for index, tr in enumerat

拥嬉怯慌
3年前 (2022-07-05)

教程来说,这篇文章比较脚踏实地,不玩虚的,你看完后一定可以学会的。准备工作:在做爬虫之前,首先对爬虫的解题路径做个简单概述。一个爬虫工作分为两步骤:第一步:把你需

澄萌离祭
3年前 (2022-07-04)

ss_='conMidtab2')也上一份图片给大家分析一下: 我们已经分析好了如何获取城市的盒子,那么接下来就是去获取城市的天气信息了。我们继续分析(具体分析过程可以看本视频教程)后发现,在table中,前面两个tr是

语酌俗野
3年前 (2022-07-05)

)后发现,在table中,前面两个tr是表头,知识用来解释数据的,我们不需要,那么真正有用的数据是从第三个tr开始的。并且第三个tr的第 1 个td展示的是该省或者直辖市的名称,从第二个td开始才是真正展示该省份下这个城市的详细天气情况了,这里上一张图片分析一下: 并且,从第四个tr开始,下面的td

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。