大家好,今天我们来讲讲怎么用python对中国天气网进行爬取并且对爬取到的数据进行数据可视化的显示

这就是我们今天要爬取的内容,将中国天气网上的华北、东北等地区七天内的天气数据进行一个爬取,并且对最高气温和最低气温的各个城市进行数据可视化

我们由网页可以看出这里是没有运用ajax等加载技术的,这样比较方便我们一个爬虫新手对其进行爬取,在爬取过程中只需要对一些文本进行格式化就行

import requests

from bs4 import BeautifulSoup

from lxml import html

from pyecharts.charts import Bar

#定义两个全局变量,对于最冷温度城市和最热温度城市进行一个放入

All_MinData = []

All_MaxData = []

def parse_page(url):

header = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',

#'Referer': 'http://www.weather.com.cn/textFC/hb.shtml'

}

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

text = response.content.decode('utf-8')

soup = BeautifulSoup(text,'lxml')

tables = soup.find_all('table')[5:]

for table in tables:

trs = table.find_all('tr')[3:] #[2:]对进行筛选

for tr in trs: # 打印北京这个区块下面市区的天气情况

tds = tr.find_all('td')

city_td = tds[0] # stripped_strings这个方法可以对文本中的空格行进行删除只提取出其中的文字信息

city = list(city_td.stripped_strings)[0] #获取城市的名字

weather_td = tds[1]

cityweather = list(weather_td.stripped_strings)[0] #获取天气的现象

mintempl_td = tds[-2]

min_templ = list(mintempl_td.stripped_strings)[0] #获取最低的温度

maxteml_td = tds[-5]

max_templ = list(maxteml_td.stripped_strings)[0] # 获取最高的温度

All_MinData.append({"city":city,"min_templ":int(min_templ)})

All_MaxData.append({"city": city, "max_templ": int(max_templ)})

print({"city":city,"cityweather":cityweather,"max_templ":max_templ,"min_templ":min_templ})

def main():

urls ={

'http://www.weather.com.cn/textFC/hb.shtml',

'http://www.weather.com.cn/textFC/db.shtml',

'http://www.weather.com.cn/textFC/hd.shtml',

'http://www.weather.com.cn/textFC/hz.shtml',

'http://www.weather.com.cn/textFC/hn.shtml',

'http://www.weather.com.cn/textFC/xb.shtml',

'http://www.weather.com.cn/textFC/xn.shtml'

}

for url in urls:

parse_page(url)

All_MinData.sort(key=lambda data:data['min_templ'])

print(All_MinData)

mindata = All_MinData[0:10]

All_MaxData.sort(key=lambda data: data['max_templ'],reverse=True)

print(All_MaxData)

maxdata = All_MaxData[0:10]

mincity = list(map(lambda x:x['city'],mindata))

mintempl = list(map(lambda x:x['min_templ'],mindata))

maxcity = list(map(lambda y:y['city'],maxdata))

maxtempl = list(map(lambda y:y['max_templ'],maxdata))

minchart = Bar()

maxchart = Bar()

minchart.add_xaxis(mincity) #导入pyecharts中的Bar柱状图生成数据

minchart.add_yaxis("中国天气最高气温排行榜", mintempl)

minchart.render('cooltemperature.html')

maxchart.add_xaxis(maxcity)

maxchart.add_yaxis("中国天气最高气温排行榜", maxtempl)

maxchart.render('hottemperature.html')

if __name__ == '__main__':

main()

这里就是小编所写的代码,因为每个省份的第一个数据不好进行修改,所以我直接从第二个城市进行选择,这里面用到的几个库pyechart还有requests库都需要自己pip一下。

基于python网络爬虫天气_Python网络爬虫之中国天气网相关推荐

  1. python sub 不区分大小写_Python网络爬虫入门篇

    1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. Python入门篇:https://www.cnblo ...

  2. python 爬虫框架_Python网络爬虫-scrapy框架的使用

    1. Scrapy 1.1 Scrapy框架的安装 Scrapy是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖的库有Twisted .lxml和pyOpenSSL.在不同的平台环境下,它所依赖 ...

  3. python 爬虫论_Python网络爬虫(理论篇)

    欢迎关注公众号:Python爬虫数据分析挖掘,回复[开源源码]免费获取更多开源项目源码 网络爬虫的组成 网络爬虫由控制节点,爬虫节点,资源库构成. 网络爬虫的控制节点和爬虫节点的结构关系 控制节点(爬 ...

  4. python网络爬虫学习_python网络爬虫学习笔记

    介绍: 网络爬虫的名字非常有意思,英文名称web spider. 真得非常形象.蜘蛛结网为了获取食物,而我们的爬虫程序,也是为了获取网络上的资源. 这篇blog是本人学习过程中的记录.学习过程中,使用 ...

  5. python网络爬虫应用_python网络爬虫应用实战

    原标题:python网络爬虫应用实战 Python这门编程语言包罗万象,可以说掌握了python,除了一些特殊环境和高度的性能要求,你可以用它做任何事. Python作为一门脚本语言,它灵活.易用.易 ...

  6. python爬虫数据挖掘_Python网页爬虫文本处理科学计算机器学习数据挖掘兵器谱...

    转载自"我爱自然语言处理":http://www.52nlp.cn,已获得授权.更多内容可见公众号:"牛衣古柳"(ID:Deserts-X). 周末时看到这篇不 ...

  7. python开发网络小工具_python 网络工具

    书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf 简介 掌握Python的网络和安全 掌握Python ...

  8. python网络编程项目_python网络编程详解

    最近在看<UNIX网络编程 卷1>和<FREEBSD操作系统设计与实现>这两本书,我重点关注了TCP协议相关的内容,结合自己后台开发的经验,写下这篇文章,一方面是为了帮助有需要 ...

  9. python网络编程项目_Python网络编程攻略

    第1章套接字.IPv4和简单的客户端/服务器编程 本章攻略: 打印设备名和IPv4地址 获取远程设备的IP地址 将IPv4地址转换成不同的格式 通过指定的端口和协议找到服务名 主机字节序和网络字节序之 ...

最新文章

  1. LeetCode简单题之找到小镇的法官
  2. React源码学习——ReactClass
  3. jmeter最大请求数_jmeter单机最大并发数_动漫台
  4. 微软Office Online服务安装部署及wopi代码实现--------域控制服务器安装
  5. 软件工程心理学之3---甲方项目负责人 PK 乙方
  6. 团队开发——冲刺1.d
  7. NTFS文件系统的简述
  8. python监控网页更新_python监控网页更新
  9. 真正厉害的产品经理,都是“数据思维”的高手
  10. 除以13(信息学奥赛一本通-T1175)
  11. 【转】Java 单例模式详解
  12. python 引入同一路径的类_Python实现Wordcloud生成词云图的示例
  13. 太实用了 Python 合成多张图片到PDF格式
  14. 三阶魔方CFOP cross总结
  15. IOUtils pom 依赖
  16. 好看的css按钮样式收集
  17. HDAO 全新项目落地,带动区块链新一轮牛市
  18. 微信加密与登录验证分析
  19. 益聚星荣:不打老婆的即时到账”?还呗贷款平台广告词惹争议
  20. js数组对象按照中文拼音排序

热门文章

  1. ref与$res的关系
  2. Pinterest先辈Wists的创业故事
  3. 爬取京东图书商品信息
  4. 中文改写神器下载-中文改写神器
  5. 查看kafka的版本
  6. c语言仿ce内存搜索工 源代码_CE的AOB_scan功能源码内存搜索特征码
  7. 数据仓库ETL工具箱——实时ETL系统
  8. IOS APP 隐私政策
  9. 节约粮食海报|节约粮食就是对袁隆平院士最好的怀念!
  10. php识别word语言,PHP读取word文档