Python爬取天气网历史天气数据

我的第一篇博客,哈哈哈,记录一下我的Python进阶之路!

今天写了一个简单的爬虫。

使用python的requests 和BeautifulSoup模块,Python 2.7.12可在命令行中直接使用pip进行模块安装。爬虫的核心是利用BeautifulSoup的select语句获取需要的信息。

pip install requests
pip install bs4

以武汉市2017年5~7月的历史为例爬取天气网中武汉市的历史天气数据。 
7月对应的网址为http://lishi.tianqi.com/wuhan/201707.html

1.requests模块获取网页内容

url=‘http://lishi.tianqi.com/wuhan/201707.html‘
response = requests.get(url)
soup = BeautifulSoup(response.text, ‘html.parser‘)    

2.利用.select语句找到网页中天气数据所在的div

weather_list = soup.select(‘div[class="tqtongji2"]‘) 

3.找出日期、最高气温、最低气温、天气等数据,用li.string获取li中的信息。

ul_list = weather.select(‘ul‘)
for ul in ul_list:
    li_list= ul.select(‘li‘)
    for li in li_list:
        li.string.encode(‘utf-8‘)  #具体的天气信息

具体代码实现如下:

#encoding:utf-8
import requests
from bs4 import BeautifulSoup                                                        

urls = ["http://lishi.tianqi.com/wuhan/201707.html",
        "http://lishi.tianqi.com/wuhan/201706.html",
        "http://lishi.tianqi.com/wuhan/201705.html"]
file = open(‘wuhan_weather.csv‘,‘w‘)
for url in urls:
    response = requests.get(url)
    soup = BeautifulSoup(response.text, ‘html.parser‘)
    weather_list = soup.select(‘div[class="tqtongji2"]‘)                             

    for weather in weather_list:
        weather_date = weather.select(‘a‘)[0].string.encode(‘utf-8‘)
        ul_list = weather.select(‘ul‘)
        i=0
        for ul in ul_list:
            li_list= ul.select(‘li‘)
            str=""
            for li in li_list:
                str += li.string.encode(‘utf-8‘)+‘,‘
            if i!=0:
                file.write(str+‘\n‘)
            i+=1
file.close()                                                                         

最后的结果: 

相比正则表达式,使用select语句爬取数据就是这么简单啦! 
正则表达式还不是很理解,等理清楚,再来写总结。

从csdn搬过来,体验一下http://blog.csdn.net/haha_point/article/details/77197230

时间: 2024-10-26 15:47:43

Python爬取天气网历史天气数据的相关文章

使用python爬取东方财富网机构调研数据

最近有一个需求,需要爬取东方财富网的机构调研数据.数据所在的网页地址为: 机构调研 网页如下所示: 可见数据共有8464页,此处不能直接使用scrapy爬虫进行爬取,因为点击下一页时,浏览器只是发起了javascript网络访问,然后将服务器返回的数据插入网页,无法通过网址直接获取对应页的的页面数据. 通过chrome的开发者工具,我们可以看到点击下一页按钮背后发起的网页访问: 在点击下一页时,浏览器向地址发起了访问.我们分析一下这个地址的结构: http://data.eastmoney.co

python 爬取天猫美的评论数据

笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似的做法,不赘述.主要是分析页面以及用Python实现简单方便的抓取. 笔者使用的工具如下 Python 3--极其方便的编程语言.选择3.x的版本是因为3.x对中文处理更加友好. Pandas--Python的一个附加库,用于数据整理. IE 11--分析页面请求过程(其他类似的流量监控工具亦可).

python爬取B站千万级数据,发现了这些热门UP主的秘密!

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收

python爬取ajax动态生成的数据 以抓取淘宝评论为例子

在学习python的时候,一定会遇到网站内容是通过ajax动态请求.异步刷新生成的json数据的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看博客内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据 四

利用python爬取贝壳网租房信息

最近准备换房子,在网站上寻找各种房源信息,看得眼花缭乱,于是想着能否将基本信息汇总起来便于查找,便用python将基本信息爬下来放到excel,这样一来就容易搜索了. 1. 利用lxml中的xpath提取信息 xpath是一门在 xml文档中查找信息的语言,xpath可用来在 xml 文档中对元素和属性进行遍历.对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势.具有如下优点:(1)可在xml中查找信息 :(2)支持html的查找:(3)通过元素和属性

python爬取安居客二手房网站数据(转)

之前没课的时候写过安居客的爬虫,但那也是小打小闹,那这次呢, 还是小打小闹 哈哈,现在开始正式进行爬虫书写 首先,需要分析一下要爬取的网站的结构: 作为一名河南的学生,那就看看郑州的二手房信息吧! 在上面这个页面中,我们可以看到一条条的房源信息,从中我们发现了什么,发现了连郑州的二手房都是这么的贵,作为即将毕业的学生狗惹不起啊惹不起 还是正文吧!!! 由上可以看到网页一条条的房源信息,点击进去后就会发现: 房源的详细信息. OK!那么我们要干嘛呢,就是把郑州这个地区的二手房房源信息都能拿到手,可

python爬取opgg的LOL英雄数据

完整源码链接: https://pan.baidu.com/s/1CWLXwlJGcq01jww8HXu3zg   (加入了部分图形界面) 由于爬取结果都是英语的版本,所以需要翻译. 另外的两个txt文件是翻译,已经完成了大部分基础的翻译,如想需要添加可以按格式填写 运行效果: 代码思路和步骤: 首先第一步,是获得所有英雄的名字和对应的url: 先观察网页的html,就能发现 <div>的data-champion-key属性中的就是英雄的名字,然后<a>的href属性就是英雄对应

Python爬取全书网小说,免费看小说

什么是网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 环境:Python3.6+Windows 开发工具:你喜欢用哪个就用哪个,你开心就好! 模块: 1 import urllib.request 2 3 import re 主要思路: 1 获取主页源代码 2 获取章节超链接 3 获取章节超链接源码 4 获取小说内容 5 下载,文

python爬取科学网基金项目信息

听说学校快开学了...任务再不快点做的话,估计开学要被导师骂死,所以要查一下近年来自己研究领域的基金中标情况! 遇到的问题 导师给了个科学网的网址让我自己查基金,查完告诉他结果,可是! 在科学网查询的时候,发现只要同一IP短时间内访问 10次 左右,网页就会说你 访问太频繁 了...然后 等个10分钟左右才能重新访问 在科学网碰壁后,我先是查了下有没有别的基金查询网站,然后发现在一众网站中,还是科学网的信息更全面一点(nsfc,medsci,letpub等),然后就还是爬虫叭!!! 1. 了解科