IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 爬取天气后报某地(新乡)的近十年11月数据 -> 正文阅读

[Python知识库]爬取天气后报某地(新乡)的近十年11月数据

这次爬取数据主要为了本人R语言期末作业第二部分,数据集不好获得,所以干脆自己爬取了一个简单数据集,使用方法为bs4,这个包我不太熟悉,主要是借鉴网上的主流思想方向,爬取了日期、天气状况、气温等数据并保存为csv表格。

  1. 导入包
    本次使用到requests爬虫必需包,pandas用来数据处理包,time休眠包,random随机数包,bs4解析网页源码包以及反爬取的模拟浏览器fake_useragent 包。
import requests
import pandas as pd
import time, random
import csv
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
  1. 首先设置headers及UA

#http://www.tianqihoubao.com/lishi/xinxiang/month/202111.html
天气后报网站爬取当天的天气页面

headers = {'Referer': 'www.tianqihoubao.com',
            'User-Agent': str(UserAgent().random)
               }
for page in range(11, 22, 1):
    url = f'http://www.tianqihoubao.com/lishi/xinxiang/month/20%s11.html' % page
        # 获取响应
    resp = requests.get(url, headers=headers)

     # 对于获取到的 HTML 二进制文件进行 'gbk' 转码成字符串文件
    html = resp.content.decode('gbk')
        # 通过第三方库 BeautifulSoup 缩小查找范围(同样作用的包库还有re模块、xpath等)
    soup = BeautifulSoup(html,'html.parser')
        # 获取 HTML 中所有<tr>…</tr>标签,因为我们需要的数据全部在此标签中存放
    tr_list = soup.find_all('tr')
        # 初始化日期dates、气候contains、温度temp值
    dates, contains, temp = [], [], []
    for data in tr_list[1:]:  # 不要表头
            # 数据值拆分,方便进一步处理(这里可以将获得的列表输出[已注释],不理解的读者可运行查看)
        sub_data = data.text.split()
            # 观察上一步获得的列表,这里只想要获得列表中第二个和第三个值,采用切片法获取
        dates.append(sub_data[0])
        contains.append(','.join(sub_data[1:3]))
            # print(contains)
            # 同理采用切片方式获取列表中的最高、最低气温
        temp.append(','.join(sub_data[3:6]))
            # print(temp)
        # 使用 _data 表存放日期、天气状况、气温表头及其值
        _data = pd.DataFrame()
        # 分别将对应值传入 _data 表中
        _data['日期'] = dates
        _data['天气状况'] = contains
        _data['气温'] = temp

    print(_data)
    data = pd.concat([_data]).reset_index(drop=True)
    data.to_csv('D:/666666/PycharmWorkspace/Pythonspider/系统学习/天气文件/%sYear11Mouth.csv ' % page, encoding='utf-8')
    print("第%s年的数据ok" % page)
    time.sleep(2)

其中URL的变化要注意一下,最好刚开始不要用循环,那样的话报错误的话比较难找,本人开始就是先爬取一年的,然后再做出循环的。
比较文件保存情况如下:
保存后文件位置所有源码都已经上传,如果看到请给刚开始发表文章的我一个支持吧,本人会将自己学习中做出的一些代码分享给大家,同时与大家互相进步。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:37:39  更:2021-12-16 17:38:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:56:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码