美文网首页
中国天气网爬虫

中国天气网爬虫

作者: 徐弱西 | 来源:发表于2019-07-29 22:26 被阅读0次
from bs4 import BeautifulSoup
import requests
from pyecharts import Bar
ALL_DATA = []

def parse_page(url):
    headers = {
        'User-Agent':
            'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36 '
    }
    response = requests.get(url, headers=headers)
    text = response.content.decode('utf-8')
    # soup = BeautifulSoup(text, 'lxml')
    soup = BeautifulSoup(text, 'html5lib')  # html5lib解析不规则的HTML代码,速度慢
    conMidtab = soup.find('div', class_='conMidtab')  # 得到div
    tables = conMidtab.find_all('table')
    for table in tables:
        trs = table.find_all('tr')[2:]  # 过滤前两个
        for index, tr in enumerate(trs):
            tds = tr.find_all('td')  # 提取td
            city_td = tds[0]
            if index == 0:
                city_td = tds[1]
            city = list(city_td.stripped_strings)[0]  # 获得城市
            temp_td = tds[-2]
            min_temp = list(temp_td.stripped_strings)[0]  # 最低温度
            ALL_DATA.append({'city': city, 'min_temp': int(min_temp)})
            # print({'city': city, 'min_temp': int(min_temp)})
        # print(table)
    # print(response.content.decode('utf-8'))


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/hn.shtml',
        'http://www.weather.com.cn/textFC/xb.shtml',
        'http://www.weather.com.cn/textFC/gat.shtml'
    ]
    for url in urls:
        parse_page(url)
    #  分析数据,根据最低气温排序
    ALL_DATA.sort(key=lambda data: data['min_temp'])  # 排序。key是以那个属性排序
    data = ALL_DATA[:10]  # 取前10个
    # print(ALL_DATA)
    # def sorr_key(data):
    #     min_temp = data['min_temp']
    #     return min_temp
    #     pass
    chart = Bar('最低气温柱状图')
    # cities = []
    # temps = []
    cities = list(map(lambda x: x['city'], data))
    temps = list(map(lambda x: x['min_temp'], data))
    chart.add('', cities, temps)
    chart.render('template.html')


if __name__ == '__main__':
    main()

相关文章

  • 中国天气网爬虫

  • Python 制作语音天气预报播报程序

    之前在参加Python爬虫小分队的学习时,爬取过中国天气网这个网站,可以通过爬虫获取当地的天气信息,今天和大家分享...

  • Python网络爬虫(2)--爬取深圳最近7天天气状况

    今天,在Python网络爬虫(1)的基础上,我们继续研究网络爬虫,今天要爬取的是中国天气网深圳最近7天的天气。网站...

  • 中国裁决文书网爬虫

    之所以爬这个网站,是因为一位朋友也在爬,而且推荐了一下给我,说作为练手很不错,于是我就是爬了,于是这网站写了我差不...

  • 中国裁判文书网爬虫

    实习的第一个爬虫项目就是爬取中国裁判文书网,在爬这个网站的时候碰到一系列的问题,刚好可以将这些问题统一总结到我搭建...

  • 爬取中国天气网

    思路:1.寻找入口2.寻找数据所在url3.获取源码,提取数据4.数据保存输出 1.入口 通过40天预报可以追溯2...

  • 中国天气网城市列表

    中国天气网把城市分为了3级1级列表获取地址:http://www.weather.com.cn/data/city...

  • 分分钟学会用Python爬取天气预报

    我假设你已经符合上述的标准,现在我们就来开始第一个爬虫的网站,我们首先挑选一个下手;附上URL:中国天气网(htt...

  • 01-认识爬虫

    一、爬虫介绍 什么是爬虫 Python爬虫的优势 Python爬虫需要掌握什么 爬虫与反爬虫与反反爬虫三角之争 网...

  • [作业 -- 2组] 天气预报 和 东方财富网

    适合第二组已经开始练习爬虫的同学(完成了简书首页爬取) 作业 1. 爬取中国天气网 你所在城市过去一年的历史数据h...

网友评论

      本文标题:中国天气网爬虫

      本文链接:https://www.haomeiwen.com/subject/oeairctx.html