python爬取气象台每日天气图代码

目录
  • 前言
  • 1.安装Selenium
  • 2. 安装chromedriver
  • 3.代码

前言

中央气象台网站更新后,以前的爬虫方式就不太能用了,我研究了一下发现主要是因为网站上天气图的翻页模式从点击变成了滑动,页面上的图片src也只显示当前页面的,因此,按照网络通俗的方法去爬取就只能爬出一张图片。看了一些大佬的教程后自己改出来一个代码。

1.安装Selenium

Selenium是一个Web的自动化(测试)工具,它可以根据我们的指令,让浏览器执行自动加载页面,获取需要的数据等操作。

pip install selenium

2. 安装chromedriver

Selenium 自身并不具备浏览器的功能,Google的Chrome浏览器能方便的支持此项功能,需安装其驱动程序Chromedriver

下载地址:http://chromedriver.storage.googleapis.com/index.html

在google浏览器的地址栏输入‘chrome://version/’,可以查看版本信息,下载接近版本的就可以。

3.代码

从图里可以看到,向前翻页指令对应的id是'prev'

from selenium import webdriver  ## 导入selenium的浏览器驱动接口
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
import time
import os
import urllib.request
level=['地面','925hPa','850hPa','700hPa','500hPa','100hPa']

chrome_driver = '路径/chromedriver.exe'  #chromedriver的文件位置
driver = webdriver.Chrome(executable_path = chrome_driver)          #加载浏览器驱动
driver.get('http://www.nmc.cn/publish/observations/china/dm/weatherchart-h000.htm')  #打开页面
time.sleep(1)
#模拟鼠标选择高度层
for z in level:
    button1=driver.find_element_by_link_text(z)     #通过link文字精确定位元素
    action = ActionChains(driver).move_to_element(button1) #鼠标悬停在一个元素上
    action.click(button1).perform()                        #鼠标单击
    time.sleep(1)
    for p in range(0,6):    #下载最近6个时次的天气图
        str_p=str(p)
        #模拟鼠标选择时间
        button2=driver.find_element_by_id('prev')             #通过id精确定位元素
        action = ActionChains(driver).move_to_element(button2) #鼠标悬停在一个元素上
        action.click(button2).perform()                        #鼠标单击
        time.sleep(1)
    #模拟鼠标选择图片
        elem_pic = driver.find_element_by_id('imgpath')       #通过id精确定位元素
        action = ActionChains(driver).move_to_element(elem_pic)
    #action.context_click(elem_pic).perform()              #鼠标右击
        filename= str(elem_pic.get_attribute('src')).split('/')[-1].split('?')[0]  #获取文件名
    #获取图片src
        src1=elem_pic.get_attribute('src')
        if os.path.exists('存图路径/'+z+'') is not True :
            	os.makedirs('存图路径/'+z+'')
        urllib.request.urlretrieve(src1 , '存图路径/'+z+'/'+filename)
        print(filename)
        time.sleep(1)

然后就可以轻松的爬取所有图片

到此这篇关于python爬取气象台每日天气图代码的文章就介绍到这了,更多相关python爬取天气图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python爬取国外天气预报网站的方法

    本文实例讲述了Python爬取国外天气预报网站的方法.分享给大家供大家参考.具体如下: crawl_weather.py如下: #encoding=utf-8 import httplib import urllib2 import time from threading import Thread import threading from Queue import Queue from time import sleep import re import copy lang = "fr&qu

  • 用python爬取历史天气数据的方法示例

    某天气网站(www.数字.com)存有2011年至今的天气数据,有天看到一本爬虫教材提到了爬取这些数据的方法,学习之,并加以改进. 准备爬的历史天气 爬之前先分析url.左上有年份.月份的下拉选择框,按F12,进去看看能否找到真正的url: 很容易就找到了,左边是储存月度数据的js文件,右边是文件源代码,貌似json格式. 双击左边js文件,地址栏内出现了url:http://tianqi.数字.com/t/wea_history/js/54511_20161.js url中的"54511&qu

  • python3爬取各类天气信息

    本来是想从网上找找有没有现成的爬取空气质量状况和天气情况的爬虫程序,结果找了一会儿感觉还是自己写一个吧. 主要是爬取北京包括北京周边省会城市的空气质量数据和天气数据. 过程中出现了一个错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 250. 原来发现是页面的编码是gbk,把语句改成data=urllib.request.urlopen(url).read().decode("gbk")就可以

  • python爬取气象台每日天气图代码

    目录 前言 1.安装Selenium 2. 安装chromedriver 3.代码 前言 中央气象台网站更新后,以前的爬虫方式就不太能用了,我研究了一下发现主要是因为网站上天气图的翻页模式从点击变成了滑动,页面上的图片src也只显示当前页面的,因此,按照网络通俗的方法去爬取就只能爬出一张图片.看了一些大佬的教程后自己改出来一个代码. 1.安装Selenium Selenium是一个Web的自动化(测试)工具,它可以根据我们的指令,让浏览器执行自动加载页面,获取需要的数据等操作. pip inst

  • Python爬取附近餐馆信息代码示例

    本代码主要实现抓取大众点评网中关村附近的餐馆有哪些,具体如下: import urllib.request import re def fetchFood(url): # 模拟使用浏览器浏览大众点评的方式浏览大众点评 headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'} ope

  • Python爬取豆瓣视频信息代码实例

    这篇文章主要介绍了Python爬取豆瓣视频信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 这里是爬取豆瓣视频信息,用pyquery库(jquery的python库). 一:代码 from urllib.request import quotefrom pyquery import PyQuery as pqimport requestsimport pandas as pddef get_text_page (movie_name)

  • 用python爬取电脑壁纸实例代码

    目录 前言 一.用到的工具 二.爬取步骤与过程 1.用到的库 2.解析代码 3.最后上全部的代码啦 总结 前言 听说好的编程习惯是从写文章敲代码开始的,下面给大家介绍一个简单的python爬取图片的过程,超简单.我都不好意思写,但是主要是捋一下爬取过程.本文只是技术交流的,请不要商业用途哈 一.用到的工具 使用python爬虫工具,我使用的工具就是学习python都会用的的工具,一个是pycharm,一个是chrome,使用chrome只是我的个人习惯,也可以用其他的浏览器,我除了这两个软件还用

  • Python爬取知乎图片代码实现解析

    首先,需要获取任意知乎的问题,只需要你输入问题的ID,就可以获取相关的页面信息,比如最重要的合计有多少人回答问题. 问题ID为如下标红数字 编写代码,下面的代码用来检测用户输入的是否是正确的ID,并且通过拼接URL去获取该问题下面合计有多少答案. import requests import re import pymongo import time DATABASE_IP = '127.0.0.1' DATABASE_PORT = 27017 DATABASE_NAME = 'sun' cli

  • Python爬取12306车次信息代码详解

    详情查看下面的代码: 如果被识别就要添加一个cookie如果没有被识别的话就要一个user-agent就好了.如果出现乱码就设置编码格式为utf-8 #静态的数据一般在elements中(复制文字到sources按ctrl+f搜索.找到的为静态),而动态去network中去寻找相关的信息 import requests import re def send_request(): headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win6

  • python 爬取微信文章

    本人想搞个采集微信文章的网站,无奈实在从微信本生无法找到入口链接,网上翻看了大量的资料,发现大家的做法总体来说大同小异,都是以搜狗为入口.下文是笔者整理的一份python爬取微信文章的代码,有兴趣的欢迎阅读 #coding:utf-8 author = 'haoning' **#!/usr/bin/env python import time import datetime import requests** import json import sys reload(sys) sys.setd

  • 简单实现Python爬取网络图片

    本文实例为大家分享了Python爬取网络图片的具体代码,供大家参考,具体内容如下 代码: import urllib import urllib.request import re #打开网页,下载器 def open_html ( url): require=urllib.request.Request(url) reponse=urllib.request.urlopen(require) html=reponse.read() return html #下载图片 def load_imag

  • python爬取微博评论的实例讲解

    python爬虫是程序员们一定会掌握的知识,练习python爬虫时,很多人会选择爬取微博练手.python爬虫微博根据微博存在于不同媒介上,所爬取的难度有差异,无论是python新入手的小白,还是已经熟练掌握的程序员,可以拿来练手.本文介绍python爬取微博评论的代码实例. 一.爬虫微博 与QQ空间爬虫类似,可以爬取新浪微博用户的个人信息.微博信息.粉丝.关注和评论等. 爬虫抓取微博的速度可以达到 1300万/天 以上,具体要视网络情况. 难度程度排序:网页端>手机端>移动端.微博端就是最好

  • Python爬取腾讯疫情实时数据并存储到mysql数据库的示例代码

    思路: 在腾讯疫情数据网站F12解析网站结构,使用Python爬取当日疫情数据和历史疫情数据,分别存储到details和history两个mysql表. ①此方法用于爬取每日详细疫情数据 import requests import json import time def get_details(): url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=jQuery3410284820553141302

随机推荐