Python实现对主要城市及其周边地区天气数据的爬取
python爬虫学习爬虫(爬取指定网站数据)
- Python实现对主要城市及其周边地区天气数据的爬取,关键步骤已经做了注释此版本仅是初学者的学习版,不喜勿喷
#coding: utf-8
import re
from urllib import request
from bs4 import BeautifulSoup
#将要爬取的城市及其对应的链接存于不同的列表
cityLink=['http://www.weather.com.cn/weather1d/101270101.shtml#input','http://www.weather.com.cn/weather1d/101010100.shtml#input','http://www.weather.com.cn/weather1d/101020100.shtml#input','http://www.weather.com.cn/weather1d/101280101.shtml#input','http://www.weather.com.cn/weather1d/101210101.shtml#input','http://www.weather.com.cn/weather1d/101200101.shtml#input','http://www.weather.com.cn/weather1d/101190101.shtml#input','http://www.weather.com.cn/weather1d/101280601.shtml#input','http://www.weather.com.cn/weather1d/101190401.shtml#input','http://www.weather.com.cn/weather1d/101230201.shtml#input','http://www.weather.com.cn/weather1d/101220101.shtml#input',]
cityName=['成都','北京','上海','广州','杭州','武汉','南京','深圳','苏州','厦门','合肥']
#获得链接对应的网页内容
def getSoup(url): rsp = request.urlopen(url)content = rsp.read()soup = BeautifulSoup(content,'html.parser')return soup
#获取地区
def getArea(Soup):Area_list=[]UL_Tag=Soup.find_all('ul',class_="clearfix city") for each_LI in UL_Tag:txtLI=each_LI.find_all('li')for eachA in txtLI:txtArea=eachA.find_all('span')for eachs in txtArea: #筛选出地方aroundArea=eachs.stringArea_list.append(aroundArea)return Area_list
#获取温度字符串
def getTemprature(Soup):Temprature_list=[]UL_Tag=Soup.find_all('ul',class_="clearfix city") #从包含周边城市地区及其温度的ul标签逐层向里,获取地区名和温度for each_LI in UL_Tag:txtLI=each_LI.find_all('li')for eachA in txtLI:txtTemperature=eachA.find_all('i')for eachsI in txtTemperature:Temprature=eachsI.stringTemprature_list.append(Temprature) return Temprature_list
def Main():# 从字符串找获得数字的正则表达,可以匹配整数,负数pattern = re.compile(r'[\-|0-9][0-9]*') print("城市 周边地区 最低温度 最高温度")#将城市链接列表的每个城市,做爬取信息操作for i in range(0,len(cityLink)):soup=getSoup(cityLink[i])Area_list=getArea(soup) #得到地区列表Temprature_list=getTemprature(soup) #得到温度字符串列表Max_temprature=[]Mini_temprature=[]for j in range(len(Temprature_list)):#将获得的最高温度和最低温度存于列表中temp_list=pattern.findall(Temprature_list[j])#由于网页在夜间和白天的数据显示格式不同,#用small和min函数消除网页内容变化对爬取数据的影响big=max(int(temp_list[0]),int(temp_list[1])) small=min(int(temp_list[0]),int(temp_list[1]))Max_temprature.append(big)Mini_temprature.append(small)#打印输出for k in range(len(Area_list)):print("{:^}\t{:<}\t\t{:^}\t{:^}".format(cityName[i],Area_list[k],Mini_temprature[k],Max_temprature[k],))#运行主函数-----程序入口
Main()
2.爬取结果如下(部分截图):
Python实现对主要城市及其周边地区天气数据的爬取相关推荐
- python爬取天气数据_Python爬取历史天气数据
Python爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据的 ...
- python爬取天气数据_Python爬取天气情况
一.设计方案 爬虫名称:爬取天气情况并进行可视化 爬虫内容:爬取2020年3月份莆田市天气情况 爬虫设计:目标url,获取网页源代码,数据提取,数据保存 二.页面的结构特征分析(网址:http://w ...
- python爬虫天气数据_Python爬取真气网天气数据
使用工具:pycharm,Chrome driver 使用库:selenium 前言: 我们无时无刻不在呼吸着周围的空气, 可身边的空气质量怎样呢? 嗯~~~ 大多数人会沉思一会儿, 最后还是会说:不 ...
- 手机python爬虫教程_python爬虫入门 之 移动端数据的爬取
第七章 移动端数据的爬取 基于某一款抓包工具 : fiddler ,青花瓷 ,miteproxy 7.1 fiddler 基本配置 7.1.1fiddler简介和安装 什么是Fiddler? Fidd ...
- Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称
Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称 这一节主要是使用xpath解析爬取全国城市名称 这里使用的网址是:空气质量历史数据查询 这一个案例体现的点主要是xpat ...
- python爬取公交车站数据_Python爬虫实例_城市公交网络站点数据的爬取方法
爬取的站点:http://beijing.8684.cn/ (1)环境配置,直接上代码: # -*- coding: utf-8 -*- import requests ##导入requests fr ...
- python获取天气分析_Python爬取南京市往年天气预报,使用pyecharts进行分析
上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图 ...
- python爬取地理数据_python爬取所有人位置信息——腾讯位置大数据
腾讯位置大数据 网站 https://heat.qq.com/ 网站功能介绍 腾讯位置大数据会将提供所有用户使用腾讯位置的数据信息,但没有用户信息(只有位置信息).从这个网站我们可以获取所有使用腾讯位 ...
- python 北上资金_python爬虫技术:北向资金数据自动爬取!
好久不见!今天我们继续python的话题啦.python现在势头凶得很,没事刷抖音.刷朋友圈.看公众号,弹出的广告总少不了python."python带你发家致富,财富自由!"广告 ...
最新文章
- 机器学习算法学习---处理分类问题常用算法(一)
- c 汇编语言用标准函数代替,C与汇编的接口技术
- 错误消息:'events' 为空或不是对象
- C++ 实现CRC循环冗余校验码
- 保密计算机和移动存储介质台账,银行计算机和移动存储介质保密管理办法
- 基于Multisim的函数信号发生器--方波、三角波、正弦波
- 请用android手机自带浏览器,还在用手机自带浏览器吗?推荐两款无广告、功能齐全的浏览器...
- python使用xlwt模块操作Excel
- Flyway-数据库迁移工具
- C++——素数(质数)专题训练
- 一个PHP程序员的职业生涯技术提升阶梯规划方案
- 希沃白板如何解决手机端播放课件内视频出现黑屏闪退
- 昨天介入600571,信雅达,喜欢的朋友可以跟进!
- 专利申请流程及费用及时间?
- Electron+Vue3+Vite+Element-Plus,保持软后台全速运行(解决循环过多导致的界面不刷新问题,保证窗口失去焦点后setTimeOut可用)
- 【Qt】 Fractal Designer 5.3 - Help(中文版)
- ​力扣解法汇总1728-猫和老鼠 II
- 物种组成相对丰度(百分比)堆叠柱状图
- 火狐浏览器所有版本下载地址
- 【裸辞记录之感受篇】裸辞后的反焦虑生活,相信一切都会有最好的安排
热门文章
- VB.NET 父窗口内子窗口运用
- 微信H5页面图片上传避坑指南(vant+vue)
- qt 禁止alt+f4_禁止上下关闭按钮和Alt + F4
- android 生成bks_Android 生成bks证书
- DirectX11_HLSL入门篇
- Hive学习(7)pmod()函数详解
- html情侣相册,浪漫的情侣相册名字
- 清华大学公开课线性代数2——第12讲:复数与复矩阵
- 【Microarchitecture of Intel and AMD CPU】 9 Sandy Bridge and Ivy Bridge pipeline 【9.8-9.10】
- html怎么在表格中加虚线,html设置虚线边框的方法详细介绍