爬虫爬取全国历史天气数据

一段很简单的爬虫程序,爬取的网站为http://www.tianqihoubao.com,可以自己修改爬取城市以及爬取的月份,这里爬取的是1到7月的数据

from bs4 import BeautifulSoup
import requests
import pymysql
import warnings
# import pinyin
# from pinyin import PinYin
from pypinyin import pinyin, lazy_pinyin
import pypinyin
warnings.filterwarnings("ignore")

conn = pymysql.connect(host=‘localhost‘, user=‘root‘, passwd=‘root‘, db=‘test2‘, port=3306, charset=‘utf8‘)
cursor = conn.cursor()
def get_temperature(url,city):
    headers = {
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,  like Gecko) Chrome/63.0.3239.132 Safari/537.36‘}           # 设置头文件信息
    response = requests.get(url,  headers=headers).content    # 提交requests get 请求
    soup = BeautifulSoup(response,  "lxml")       # 用Beautifulsoup 进行解析

    conmid2 = soup.findAll(‘div‘,  class_=‘wdetail‘)
    # conmid2 = conmid.findAll(‘div‘,  class_=‘wdetail‘)

    for info in conmid2:
        tr_list = info.find_all(‘tr‘)[1:]       # 使用切片取到第三个tr标签
        for index,  tr in enumerate(tr_list):     # enumerate可以返回元素的位置及内容
            td_list = tr.find_all(‘td‘)
            # if index == 0:

            date = td_list[0].text.strip().replace("\n", "")  # 取每个标签的text信息,并使用replace()函数将换行符删除
            weather = td_list[1].text.strip().replace("\n", "").split("/")[0].strip()
            temperature = td_list[2].text.strip().replace("\n",  "").split("/")[0].strip()
            wind = td_list[3].text.strip().replace("\n",  "").split("/")[0].strip()

            # else:
            #     city_name = td_list[0].text.replace(‘\n‘,  ‘‘)
            #     weather = td_list[4].text.replace(‘\n‘,  ‘‘)
            #     wind = td_list[5].text.replace(‘\n‘,  ‘‘)
            #     max = td_list[3].text.replace(‘\n‘,  ‘‘)
            #     min = td_list[6].text.replace(‘\n‘,  ‘‘)

            print(city,date,  weather,  wind,  temperature)
            cursor.execute(‘insert into weather(city, date, weather, wind, temp) values(%s, %s, %s, %s, %s)‘
                           ,  (city,  date,  weather,  wind,  temperature ))
if __name__==‘__main__‘:

    # citys1= ["成都市","广元市","绵阳市","德阳市","南充市","广安市","遂宁市","内江市","乐山市","自贡市","泸州市","宜宾市","攀枝花市","巴中市","达州市","资阳市","眉山市","雅安市","崇州市","邛崃市","都江堰市","彭州市","江油市","什邡市","广汉市","绵竹市","阆中市","华蓥市","峨眉山市","万源市","简阳市","西昌市","康定市","马尔康市","隆昌市"]
    # citys1= ["郑州市","开封市","洛阳市","平顶山市","安阳市","鹤壁市","新乡市","焦作市","濮阳市","许昌市","漯河市","三门峡市","南阳市","商丘市","周口市","驻马店市","信阳市","荥阳市","新郑市","登封市","新密市","偃师市","孟州市","沁阳市","卫辉市","辉县市","林州市","禹州市","长葛市","舞钢市","义马市","灵宝市","项城市","巩义市","邓州市","永城市","汝州市","济源市"]
    # citys1= ["呼和浩特市","包头市","乌海市","赤峰市","通辽市","鄂尔多斯市","呼伦贝尔市","巴彦淖尔市","乌兰察布市","霍林郭勒市","满洲里市","牙克石市","扎兰屯市","额尔古纳市","根河市","丰镇市","乌兰浩特市","阿尔山市","二连浩特市","锡林浩特市"]
    # citys1= ["沈阳市","大连市","鞍山市","抚顺市","本溪市","丹东市","锦州市","营口市","阜新市","辽阳市","盘锦市","铁岭市","朝阳市","葫芦岛市","新民市","瓦房店市","庄河市","海城市","东港市","凤城市","凌海市","北镇市","盖州市","大石桥市","灯塔市","调兵山市","开原市","北票市","凌源市","兴城市"]
    # citys1= ["葫芦岛市","新民市","瓦房店市","庄河市","海城市","东港市","凤城市","凌海市","北镇市","盖州市","大石桥市","灯塔市","调兵山市","开原市","北票市","凌源市","兴城市"]
    citys1= ["开原市","北票市","凌源市","兴城市"]

    for city in citys1:
        city1 = ‘‘.join(lazy_pinyin(city[:-1]))
        print(city1)
        urls = [‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201801.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201802.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201803.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201804.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201805.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201806.html‘,
                ‘http://www.tianqihoubao.com/lishi/‘+city1+‘/month/201807.html‘]
        for url in urls:
            get_temperature(url, city)
        conn.commit()
 

原文地址:https://www.cnblogs.com/xixilili/p/9769535.html

时间: 2024-10-08 04:18:11

爬虫爬取全国历史天气数据的相关文章

Python爬取全国历史天气数据

1.通过爬取历史首页,来获取城市地址和历史时间,构建链接: ''' 获取全国的城市名称和链接 ''' import requests from lxml import etree import random import pymongo from time_list import get_time client = pymongo.MongoClient('localhost',27017) tianqi_data = client['tianqi_data'] time_url_table =

java爬虫爬取博客园数据

网络爬虫 编辑 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler).聚焦网络爬虫(Focused Web Crawler).增量式网络爬虫(Incremental Web Crawler).深层网络爬虫(Deep We

Python3爬虫爬取淘宝商品数据

这次的主要的目的是从淘宝的搜索页面获取商品的信息.其实分析页面找到信息很容易,页面信息的存放都是以静态的方式直接嵌套的页面上的,很容易找到.主要困难是将信息从HTML源码中剥离出来,数据和网页源码结合的很紧密,剥离数据有一定的难度. 然后将获取的信息写入excel表格保存起来,这次只爬取了前面10页 的内容.在运行代码的过程中发现,30页后面的数据有问题,出现了手机价格为0的情况,这是不符合实际的,码也没有写错误处理的代码. 这次先写个粗略的,有点凌乱的感觉,下次有时间再系统的整理整理吧. im

用Scrapy爬虫爬取豆瓣电影排行榜数据,存储到Mongodb数据库

爬虫第一步:新建项目 选择合适的位置,执行命令:scrapy startproje xxxx(我的项目名:douban) 爬虫第二步:明确目标 豆瓣电影排行url:https://movie.douban.com/top250?start=0, 分析url后发现srart=后面的数字,以25的步长递增,最大为225,所以可以利用这个条件来发Request请求 本文只取了三个字段,电影名.评分和介绍,当然你想去更多信息也是可以的 item["name"]:电影名 item["r

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

26、自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱

自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱. 之所以选择这个相对朴实的爬虫项目,是因为天气每天都会有变化,那么在学完这一关之后,不出意外,你就可以在明早收到天气信息了.以此,亲身体验程序的作用. 你还可以把每日的天气和温馨的穿衣提示发送到你的恋人.家人.或朋友的邮箱里,这也是传递心意的一种方式. 总体上来说,可以把这个程序分成三个功能块:[爬虫]+[邮件]+[定时] 1 import requests 2 import time 3 import schedule 4 from

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,

爬虫练习五:多进程爬取股市通股票数据

在上网查阅一些python爬虫文章时,看见有人分享了爬取股票的交易数据,不过实现得比较简单.这里就做个小练习,从百度股票批量爬取各股票的交易信息. 文章出处为:Python 爬虫实战(2):股票数据定向爬虫. 爬取数据:每个股票的日度交易数据 爬取来源:百度股市通 python版本:3.6.6 时间:20190115 1. 找到日度数据url 以中化国际的日K数据为例,通过分析网页,我们可以发现,日度交易数据是通过接口的形式获取的. 获取的url为:https://gupiao.baidu.co

Python爬虫爬取数据的步骤

爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多网页的变化规律,基本上都是只有小部分有所变化,如:有的网页只有网址最后的数字在变化,则这种就可以通过变化数字将多个网页链接获取: 2.把获取得到的多个网页链接存入字典,充当一个临时数据库,在需要用时直接通过函数调用即可获得: 3.需要注意的是我们的爬取并不是随便什么网址都可以爬的,我们需要遵守我们的